概述: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'}
>>>