1、字典
Python中的字典可以理解爲一種鍵值對的集合
鍵必須是唯一的,值可以重複
值可以取任何類型,但鍵必須是你不可變的類型,如字符串、數組或元組等
字典是可變的,因此可以增加、刪除、修改字典中的鍵值對
2、字典創建
字典中鍵和值用:分割,每個鍵值對用,分割,整個字典包含在一個{}中,格式如下:
d={key1:value1,key2:value2,key3:value3}
也可以使用dict()創建一個空字典,或者用dict()將一個包含雙值子序列的序列轉換成一個字典。
>>> d={'zhangsan':1,'lisi':2,'wangwu':3}
>>> d
{'zhangsan': 1, 'lisi': 2, 'wangwu': 3}
>>> d={}
>>> d
{}
>>> d=dict()
>>> d
{}
>>> s=[['a','b'],['c','d'],['e','f']]
>>> d=dict(s)
>>> d
{'a': 'b', 'c': 'd', 'e': 'f'}
>>>
3、訪問、添加和修改元素
使用類似字符串索引的方式來訪問一個元素,與字符串的區別在於索引爲字典的鍵,當索引不存在時,會報錯(KeyError)
>>> d={'a':1,'b':2,'c':3}
>>> d
{'a': 1, 'b': 2, 'c': 3}
>>> d['a']
1
>>> d['c']
3
>>> d[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 1
>>>
指定元素的鍵並賦予相應的值,若該鍵已經存在於字典中,那麼該鍵對應的舊值會被取代,如果該鍵不在字典中,那麼會將該鍵值對添加到字典
>>> d={'a':1,'b':2,'c':3}
>>> d['a']=10
>>> d['a']
10
>>> d
{'a': 10, 'b': 2, 'c': 3}
>>> d['d']=20
>>> d
{'a': 10, 'b': 2, 'c': 3, 'd': 20}
>>>
4、刪除字典元素
使用del刪除具有指定鍵的元素
具體語法爲:del d[key]
>>> d
{'a': 10, 'b': 2, 'c': 3, 'd': 20}
>>> del d['d']
>>> d
{'a': 10, 'b': 2, 'c': 3}
>>>
**注意:如果不加索引會將字典的引用直接刪除
如果想要刪除字典中的所有元素,應使用clear()方法**
5、合併字典
使用update()可以將一個字典中的鍵值對複製到另一個字典中
>>> first={'a':1,'b':2,'c':3}
>>> first
{'a': 1, 'b': 2, 'c': 3}
>>> second={'c':4,'d':5}
>>> second
{'c': 4, 'd': 5}
>>> first.update(second)
>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> second
{'c': 4, 'd': 5}
>>>
注意:如果待添加的字典與待擴充的字典包含同樣的鍵,新歸入字典的值會取代原有的值
6、判斷鍵是否在字典中
使用 in 判斷一個鍵是否在字典中
>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> second
{'c': 4, 'd': 5}
>>> 'a' in first
True
>>> 5 in first
False
>>>
7、獲取字典中的所有鍵
使用keys()可以獲取字典中的所有鍵
>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> keys=first.keys()
>>> keys
dict_keys(['a', 'b', 'c', 'd'])
>>> type(first.keys())
<class 'dict_keys'>
>>> for x in list(first.keys()) :
... print(x," : ",first[x])
...
a : 1
b : 2
c : 4
d : 5
>>>
注意:在Python2中keys()會返回一個列表,但在Python3中則返回一個dict_keys的對象,該對象是鍵的迭代形式,對於大型字典非常有用,因爲不需要時間和空間來創建返回的列表,當需要列表時可以使用list()轉換
8、獲取字典中的所有值
使用values()獲取字典中的所有值
>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> values=first.values()
>>> values
dict_values([1, 2, 4, 5])
>>> type(values)
<class 'dict_values'>
>>> for x in list(values) :
... print(x,end=',')
...
1,2,4,5,
9、獲取所有鍵值對
使用items()獲取所有鍵值對
>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> items=first.items()
>>> items
dict_items([('a', 1), ('b', 2), ('c', 4), ('d', 5)])
>>> type(items)
<class 'dict_items'>
>>> for x in list(items) :
... print(x)
... type(x)
...
('a', 1)
<class 'tuple'>
('b', 2)
<class 'tuple'>
('c', 4)
<class 'tuple'>
('d', 5)
<class 'tuple'>
>>>
注意:每一個鍵值對以元組的形式返回
10、複製字典
由於字典是可變的,對字典內容進行修改會反映到與之相關聯的變量名上,有時將一個字典複製到一個新的字典中進行相關操作,防止修改原來的字典,使用copy()可以複製一個字典
>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> copy_first=first.copy()
>>> first['b']=100
>>> first
{'a': 1, 'b': 100, 'c': 4, 'd': 5}
>>> copy_first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>>