概述:python中的dict具有如下特點
dict是可變的
dict可以存儲任意數量的Python對象
dict可以存儲任何python數據類型
dict以: key:value, 即“鍵: 值”對的形式存儲數據, 每個鍵是唯一的。
dict也被稱爲關聯數組或哈希表
創建dict
方法一:dictname = { }
>>> mydict = { }
>>> mydict
>>> { }
從空字典中加入鍵值對:
>>> mydict[1] = "value1"
>>> mydict[2] = "value2"
>>> mydict[3] = "value3"
>>> mydict["name4"] = "value4"
>>> mydict["name5"] = "value5"
>>> mydict["name6"] = "value6"
>>> mydict
{1: 'value1', 2: 'value2', 3: 'value3', 'name4': 'value4', 'name5': 'value5', 'name6': 'value6'}
>>>
方法二:dict = {key1:value1,key2:value2,...}
>>> mydict2 = {"name1":"value1","name2":"value2","name3":"value3","name4":"value4"}
>>> mydict2
{'name1': 'value1', 'name2': 'value2', 'name3': 'value3', 'name4': 'value4'}
"name":"value"就是一個鍵值對, 前面的name叫做鍵( key) , 後面的value是前面的鍵所對應的值(value)。 在一個dict中, 鍵是唯一的, 不能重複; 值則是對應於鍵, 值可以重複。 鍵值之間用(:)英文的分號, 每一對鍵值之間用英文的逗號(,)隔開。
方法三:dict(name) = (["key1","name1"],["key2","value2"])
>>> name = (["first","google"],["second","yahoo"]) (另一種數據類型,元組)
>>> website = dict(name)
>>> website
{'first': 'google', 'second': 'yahoo'}
>>>
訪問dict值:dict[k]
>>> mydict
{1: 'value1', 2: 'value2', 3: 'value3', 'name4': 'value4', 'name5': 'value5', 'name6': 'value6'}
>>> mydict[1]
'value1'
>>> mydict[2]
'value2'
>>> mydict["name2"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'name2'
>>> mydict["name4"]
'value4'
>>> for key in mydict:
... print (mydict[key])
...
value1
value2
value3
value4
value5
value6
>>>
獲取鍵、值:dict.keys() dict.values() dict.items()
>>> mydict.keys()
dict_keys([1, 2, 3, 'name4', 'name5', 'name6'])
>>> mydict.values()
dict_values(['value1', 'value2', 'value3', 'value4', 'value5', 'value6'])
>>> mydict.items()
dict_items([(1, 'value1'), (2, 'value2'), (3, 'value3'), ('name4', 'value4'), ('name5', 'value5'), ('name6', 'value6')])
>>> for value in mydict.values():
... print (value)
...
value1
value2
value3
value4
value5
value6
>>>
刪除鍵值對:dict.pop(key) 或者 del dict[key]
>>> mydict
{1: 'value1', 2: 'value2', 3: 'value3', 'name4': 'value4', 'name5': 'value5', 'name6': 'value6'}
>>> mydict.pop(2) #有返回值
'value2'
>>> mydict
{1: 'value1', 3: 'value3', 'name4': 'value4', 'name5': 'value5', 'name6': 'value6'}
>>> del mydict[1] #無返回值
>>> mydict
{3: 'value3', 'name4': 'value4', 'name5': 'value5', 'name6': 'value6'}
>>>
鍵值對合並:dict1.update(dict2)
>>> mydict2
{'name1': 'value1', 'name2': 'value2', 'name3': 'value3', 'name4': 'value4'}
>>> mydict2.update(mydict)
>>> mydict2
{'name1': 'value1', 'name2': 'value2', 'name3': 'value3', 'name4': 'value4', 3: 'value3', 'name5': 'value5', 'name6': 'value6'}
>>>