一文看懂Python(三)-----字典篇
阿新 • • 發佈:2021-02-04
字典不同於列表、元組和字串,列表、元組和字串可以概括為序列型別,有以下特點:
- 1.都可以通過索引得到每一個元素
- 2.預設索引值總是從0開始
- 3.可以通過切片的方法得到一個範圍內的元素集合
- 4.有很多共同的操作符
而字典是一種對映型別,這是完全不同的。
1、建立字典
1.1 常用建立方式
dict1 = {'李寧':'雲','耐克':'zoom','阿迪達斯':'boost','匹克':'態極'}
1.2 利用元組建立
dict2 = dict((('a',1),('b',2),('c',3),('d',4)))
1.3 另外一種建立方式
dict3 = dict(馬斯克 = '讓程式設計改變世界',愛因斯坦 = '廣義狹義相對論')
2、修改字典
dict3['李寧'] = '一切皆有可能'
# 如果字典中沒有該元素,通過上述這種方式會新新增該元素到字典中
dict3['奮鬥'] = '社會上容納不了太多有理想的人'
3、常用方法
3.1 fromkeys(seq,val)方法:建立一個新字典,以序列 seq 中元素做字典的鍵,val 為字典所有鍵對應的初始值,val可選
# 若沒有設定val,預設為None
dict1 = {}
dict1.fromkeys((1,2,3))
# 設定val為number,則建立的字典值為number
dict1.fromkeys((1,2,3),'number')
3.2 keys():獲得字典所有的key值
dict2 = {}
dict2 = dict2.fromkeys(range(30),'贊')
for each in dict2.keys():
print(each)
3.3 values():獲得字典所有的values值
for each in dict2.values():
print(each)
3.4 items()方法:將字典的每一項打印出來,以元組的形式
for each in dict2.items():
print(each)
3.5 get(key,default)方法:返回指定鍵的值,如果值不在字典中返回default值,default可選
# dict2字典中只有30個元素,索引值0~29,沒有30,因此返回一個None
print(dict2.get(30))
print(dict2.get(29))
3.6 in/not in :判斷key是否在字典中¶
32 in dict2
29 in dict2
3.7 copy():這是淺拷貝,與直接相等不是一個東西
a = {1:'one',2:'two'}
# 淺拷貝
b = a.copy()
# 通過列印首地址來確認
print(id(a))
print(id(b))
# 可以發現不是相同的
# 深拷貝
c = a
print(id(c))
print(id(a))
# 可以發現這是一致的
3.8 pop(key,default):刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
dict2.pop(27)
3.9 popitem():返回並刪除字典中的最後一對鍵和值。
dict2.popitem()
3.10 setdefault(key,default):和get()類似, 但如果鍵不存在於字典中,將會新增鍵並將值設為default
dict2.setdefault(26,'woaini')
3.11 update(dict2):把字典dict2的鍵/值對更新到dict裡
dict2.update({99:'kk'})