1. 程式人生 > >Python學習【第2篇】:Python之數據類型(2)

Python學習【第2篇】:Python之數據類型(2)

append 但是 iss 代碼 key 常用方法 uber ner ces

元組

技術分享圖片

技術分享圖片
#為何要有元組,存放多個值,元組不可變,更多的是用來做查詢
t=(1,[1,3],‘sss‘,(1,2)) #t=tuple((1,[1,3],‘sss‘,(1,2)))
# print(type(t))


# #元組可以作為字典的key
# d={(1,2,3):‘egon‘}
# print(d,type(d),d[(1,2,3)])

 


#     切片
# goods=(‘iphone‘,‘lenovo‘,‘sanxing‘,‘suoyi‘)
# print(goods[1:3])



#     長度

#in:
#字符串:子字符串
#列表:元素
#元組:元素
#字典:key

# goods=(‘iphone‘,‘lenovo‘,‘sanxing‘,‘suoyi‘)
# print(‘iphone‘ in goods)看的是裏面的元素在不在裏面

# d={‘a‘:1,‘b‘:2,‘c‘:3}
# print(‘b‘ in d) 看的是key在不在d裏面

 

#掌握
# goods=(‘iphone‘,‘lenovo‘,‘sanxing‘,‘suoyi‘)
# print(goods.index(‘iphone‘))
# print(goods.count(‘iphone‘))


#補充:元組本身是不可變的,但是內部的元素可以是可變類型
t=(1,[‘a‘,‘b‘],‘sss‘,(1,2)) #t=tuple((1,[1,3],‘sss‘,(1,2)))

# t[1][0]=‘A‘
# print(t)
# t[1]=‘aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa‘
技術分享圖片

字典

字典常用方法

技術分享圖片

技術分享圖片
字典的表示方法:

info_dic={‘name‘:‘haiyna‘,‘age‘:18,‘sex‘:‘female‘}
# 常用操作:
#
1.存/取
info_dic={‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘}
  print(info_dic[‘name11111111‘])#找不到則報錯了
  print(info_dic.get(‘name‘,None))
  print(info_dic.get(‘name222222‘,None))#get方法找不到不報錯,可以自己設定默認值

#pop:key存在則彈出值,不存在則返回默認值,如果沒有默認值則報錯
# print(info_dic.pop(‘nam123123123123123123e‘,None))
# print(info_dic)

# print(info_dic.popitem())
# print(info_dic)

# info_dic[‘level‘]=10
# print(info_dic)

#
#     刪除
info_dic={‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘}
# info_dic.pop()
# info_dic.popitem()

# del info_dic[‘name‘]


#
#     鍵s,值s,鍵值對
info_dic={‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘}
# print(info_dic.keys())
# print(info_dic.values())
# print(info_dic.items())

# for k in info_dic:
#     # print(k,info_dic[k])
#     print(k)

# print(‘========>‘)
# for k in info_dic.keys():
#     print(k)

# for val in info_dic.values():
#     print(val)

# for k,v in info_dic.items(): #k,v=(‘name‘, ‘egon‘)
#     print(k,v)



#     長度
# info_dic={‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘}
# print(len(info_dic))
#
#     循環
#
#     包含in

# info_dic={‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘}
# print(‘name‘ in info_dic)
# print(‘name‘ in info_dic.keys())
# print(‘egon‘ in info_dic.values())
# print((‘name‘,‘egon‘) in info_dic.items())



#掌握
info_dic={‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘}
# info_dic.update({‘a‘:1,‘name‘:‘Egon‘})
# print(info_dic)

# info_dic[‘hobbies‘]=[]
# info_dic[‘hobbies‘].append(‘study‘)
# info_dic[‘hobbies‘].append(‘read‘)
# print(info_dic)

#setdefault:key不存在則設置默認值,並且放回值默認值
#key存在則不設置默認,並且返回已經有的值

# info_dic.setdefault(‘hobbies‘,[1,2])
# print(info_dic)
# info_dic.setdefault(‘hobbies‘,[1,2,3,4,5])
# print(info_dic)

# info_dic={‘name‘:‘haiyan‘,‘age‘:18,‘sex‘:‘male‘}

# {‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘,‘hobbies‘:[‘study‘]}
# info_dic.setdefault(‘hobbies‘,[]).append(‘study‘)

# {‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘,‘hobbies‘:[‘study‘,‘read‘]}
# info_dic.setdefault(‘hobbies‘,[]).append(‘read‘)

# {‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘,‘hobbies‘:[‘study‘,‘read‘,‘sleep‘]}
# info_dic.setdefault(‘hobbies‘,[]).append(‘sleep‘)
# l=info_dic.setdefault(‘hobbies‘,[])
# print(l,id(l))
# print(id(info_dic[‘hobbies‘]))

# print(info_dic)



#了解
# d=info_dic.copy()
# print(d)
# info_dic.clear()
# print(info_dic)


# d=info_dic.fromkeys((‘name‘,‘age‘,‘sex‘),None)
# print(d)
# d1=dict.fromkeys((‘name‘,‘age‘,‘sex‘),None)
# d2=dict.fromkeys((‘name‘,‘age‘,‘sex‘),(‘egon‘,18,‘male‘))
# print(d1)
# print(d2)




# info=dict(name=‘haiyan‘,age=18,sex=‘male‘)
# print(info)

#
# info=di





集合set

一、集合的作用

   知識點回顧:可變類型是不可hash類型,不可變類型是可hash類型

    作用:去重,關系運算

    定義:可以包含多個元素,用逗號分割,集合的元素遵循三個原則:

      1.每個元素必須是不可變類型(可hash,可作為字典的key)

      2.沒有重復的元素

      4.無序

    註意集合的目的是將不同的值存放在一起,不同的集合間用來做關系運算,無需糾結集合中的單個值

二、常用方法

技術分享圖片

    in 和 not in

    |並集(print(pythons.union(linuxs)))

    &交集(print(pythons.intersection(linuxs)))

    -差集(print(pythons.difference(linuxs)))

    ^對稱差集(print(pythons.symmetric_difference(linuxs)))

    ==

    >,>= ,<,<= 父集(issuperset),子集(issuberset)

        

+ View Code?
1 2 3 4 5 6 7 8 9 10 11 12 >,>=,<,<= set1={1,2,3,4,5} set2={1,2,3,4} print(set1 >= set2) print(set1.issuperset(set2)) set1={1,2,3,4,5} set2={1,2,3} print(set1<=set2) print(set1.issubset(set2))

三、練習

 一.關系運算
  有如下兩個集合,pythons是報名python課程的學員名字集合,linuxs是報名linux課程的學員名字集合
  pythons={‘alex‘,‘egon‘,‘yuanhao‘,‘wupeiqi‘,‘gangdan‘,‘biubiu‘}
  linuxs={‘wupeiqi‘,‘oldboy‘,‘gangdan‘}
  1. 求出即報名python又報名linux課程的學員名字集合
  2. 求出所有報名的學生名字集合
  3. 求出只報名python課程的學員名字
  4. 求出沒有同時這兩門課程的學員名字集合
+ View Code?
1 2 3 pythons={‘haiyan‘,‘fank‘,‘yaling‘,‘lalal‘,‘haidong‘,‘biubiu‘} linuxs={‘six‘,‘wu‘,‘dabao‘} # 1. 求出即報名python又報名linux課程的學員名字集合
+ View Code?
1 2 pythons={‘haiyan‘,‘fank‘,‘yaling‘,‘lalal‘,‘haidong‘,‘biubiu‘} linuxs={‘six‘,‘wu‘,‘dabao‘}
+ View Code?
1 2 print(pythons & linuxs) # 2. 求出所有報名的學生名字集合
+ View Code?
1 2 pythons={‘haiyan‘,‘fank‘,‘yaling‘,‘lalal‘,‘haidong‘,‘biubiu‘} linuxs={‘six‘,‘wu‘,‘dabao‘}
+ View Code?
1 2 print(pythons | linuxs) # 3. 求出只報名python課程的學員名字
+ View Code?
1 2 pythons={‘haiyan‘,‘fank‘,‘yaling‘,‘lalal‘,‘haidong‘,‘biubiu‘} linuxs={‘six‘,‘wu‘,‘dabao‘}
+ View Code?
1 2 print(pythons - linuxs) # 4. 求出沒有同時這兩門課程的學員名字集合
+ View Code?
1 2 pythons={‘haiyan‘,‘fank‘,‘yaling‘,‘lalal‘,‘haidong‘,‘biubiu‘} linuxs={‘six‘,‘wu‘,‘dabao‘}
+ View Code?
1 print(pythons ^ linuxs)

  四、方法

+ View Code?
1 # ========掌握部分=======
+ View Code?
1 linuxs={‘six‘,‘wu‘,‘dabao‘}
+ View Code?
1 2 3 4 5 linuxs.add(‘xiaoxiao‘)#說明set類型的集合是可變類型 linuxs.add([1,2,3])#報錯,只能添加不可變類型 print(linuxs) # 2.
+ View Code?
1 linuxs={‘six‘,‘wu‘,‘dabao‘}
+ View Code

Python學習【第2篇】:Python之數據類型(2)