Python里的字典dict,也就是和C++里的map一样,是一种由键值对组成的可变的无序的数据结构,即{键:值},键必须是不可变的数据类型(由于精度问题,不推荐用浮点数为键值),值可以是任意的数据类型。dict用hash的方法将大量的数据与键值配对,通过查询键值就可得到这些数据。
创建一个空字典:
a={} 或者
a=dict()
还可以用fromkeys的方法创建一个字典
a={}.fromkeys(seq[,value])
以seq里的元素为键,value为值的字典。value省略则以none为值。
b=[1,2,3,4]
a={}.fromkeys(b,[1,2,3])
a
{1: [1, 2, 3], 2: [1, 2, 3], 3: [1, 2, 3], 4: [1, 2, 3]}
插入键值:
a[5]=[1,2,3]
修改键值:
a[5]=[4,5,6]
删除某个键值:
del a[5]
a
{1: [1, 2, 3], 2: [1, 2, 3], 3: [1, 2, 3], 4: [1, 2, 3]}或者删除整个字典:
del a
字典中的API
1.dict.get(key,default=none)
其实也是索引,返回key对应的键值,与索引不同的是如果这个键值不存在,不会报错,而是返回default,default默认为none。
a.get(1)
[1,2,3]
print (a.get(5,'this key does not exist'))
this key does not exist
2.dict.pop(key,default=none)
删除并某个键值对,弹出它的值。如果不存在,返回default。
a.pop(1)
[1,2,3]
3.dict.clear()
清空字典。没什么好说的。
4.dict.update(new_dict)
批量添加,修改字典。用新的字典添加,修改原来的字典。
b={1:[1,2,3],2:[3,4,5]}
a.update(b)
a
{1: [1, 2, 3], 2: [3, 4, 5], 3: [1, 2, 3], 4: [1, 2, 3]}
5.dict.setdefault(key,value)
用来查找某个键对应的值,返回该值。如果该键不存在,添加key-value到这个字典,返回value。value默认为none。
a.setdefault(1,0)
[1,2,3]
a.setdefault(5,0)
0
a
{1: [1, 2, 3], 2: [3, 4, 5], 3: [1, 2, 3], 4: [1, 2, 3], 5: 0}
6.dict.keys()、dict.values()、dict.items()
分别返回一个由字典中所有键、值 、键值对组成的序列。注意,python3中返回的不是列表,如果想要得到列表需要list()一下。
a.keys()
dict_keys([1, 2, 3, 4, 5])
a.values()
dict_values([[1, 2, 3], [3, 4, 5], [1, 2, 3], [1, 2, 3], 0])
a.items()
dict_items([(1, [1, 2, 3]), (2, [3, 4, 5]), (3, [1, 2, 3]), (4, [1, 2, 3]), (5, 0)])
每对键值对组成一个tuple,一起构成一个序列。
7.dict.popitem()
随机删除一对键值并返回该对键值
a.popitem()
(5,0)