字典
鍵key:拼音
值value:頁碼
key-value:鍵值對
字典是python中唯一的映射類型,指兩個元素之間一一對應的關係
(註明:字典是映射類型,不是序列類型)
brand=['外星人',‘戴爾’,‘聯想’,‘蘋果’]
English=['AlienWare','Dell','Lenovo','Apple']
#品牌與英文一一對應
print('外星人---','AlienWare')顯示不出來中文,ASCII是十進制, 此時utf-8用的是Unicode,對應的是十六進制的數據,此時轉換過程
#不行,byteString,十進制,unicodeString 十六進制,python2默認十進制,
·字典的創建於訪問
dict:字典可以dict(),n內置方法
d={}表示形式
d={'外星人':'AlienWare','戴爾':'Dell','聯想':'Lenovo','蘋果':'Apple'}
print d['外星人']
AlienWare
1、名稱={鍵1:值1,鍵2:值2,。。。}
2、空字典={}
3、利用函數創建字典
dict(mapping)
d=dict((('one',1),('two',2),('three',3)))#可以用列表 只要映射關係正確都可以
print d#{'three': 3, 'two': 2, 'one': 1}
4、利用關鍵字參數創建字典
d=dict(one=1,two=2,three=3)
print d#{'three': 3, 'two': 2, 'one': 1}
·字典的訪問
1、字典的名稱[鍵名]
2、改寫鍵對應的值
d=dict(one=1,two=2,three=3)
d['one']=100
print d#{'three': 3, 'two': 2, 'one': 100}
3、增加新的鍵值對
d['four']=4
print d#{'four': 4, 'three': 3, 'two': 2, 'one': 100}
4、訪問不存在的鍵值對:
報錯
·字典的內鍵方法(內置函數):
1、fromkeys(...)
創建並且返回一個新的字典
dict.fromkeys(s,[,v])
s:鍵 v:值(沒有給值,默認None)
當第一個參數是容器(元祖,列表,字典)時,會將第二個
參數的整體看成鍵的值
d.fromkeys(('one','two','three'))#{'three': None, 'two': None, 'one': None}
d.fromkeys(['one','two','three'])#{'three': None, 'two': None, 'one': None}
d.fromkeys({'one':1,'two':2,'three':3})#{'one': None, 'three': None, 'two': None}只拿鍵不拿值
d.fromkeys(['one','two','three'],[1,2,3])#{'three': [1, 2, 3], 'two': [1, 2, 3], 'one': [1, 2, 3]}
2、keys()
返回字典鍵的引用
d=d.fromkeys(['one','two','three'])
d.keys()#['three', 'two', 'one']
(把所有鍵拿出了封裝列表輸出)
3、values()
d={'one':1,'two':2,'three':3}
d.values()#[3, 2, 1]
返回字典中的值引用
(把所有值拿出了,封裝一個列表返回)
4、items()
d.items()#[('three', 3), ('two', 2), ('one', 1)]
返回字典的項(鍵值對)
5、get(key[,d])
獲得(訪問)字典中的鍵值對
d.get('one')#1
d.get('five')
print d.get('five')#None
6、in/not in
d={'one':1,'two':2,'three':3}
'three'in d#True
'five'in d #False
7、clear()
清空字典
d.clear()
d#{}
8、copy()
淺拷貝
字典拷貝,地址不同 開始字典裏面內容沒有發生改變,更深地址不變。
![]
9、pop()
給定鍵彈出對應鍵值對(彈出的值會在字典移除,沒有對應的鍵
,並且字典沒有異常,就會報錯。)返回對應值。
{'three': 3, 'two': 2, 'one': 1}
d.pop('one')#1
10、popitem()
同上,返回是一個鍵值對(棧空間)。
d={'three': 3, 'two': 2, 'one': 1}
d.popitem()#('one', 1)彈出是隨機的 內存上面的
11、setdefault(...)
如果字典中沒有鍵值對,則在隨機位置創建一個鍵,如果值沒有設置,默認None
setdefault(k,[,d])
d={'three': 3, 'two': 2}
d.setdefault('one')
d#{'one': None, 'three': 3, 'two': 2}
12、利用字典映射關係,更新字典
d={'three': 3, 'two': 2, 'one': 1}
a={'three':5}
d.update(a)
d#{'one': 1, 'three': 5, 'two': 2}