字典的基础介绍

见基本数据类型的介绍

Python 的字典类似于Java 中的Map, 都属于key value的形式,也类似于同样的 Json结构或者JsonObject的使用。

键都是唯一的,但键对应的值没有限制。
字典使用 { }包围每一个键值对,每一个键值对之间使用 ’ , ’ 分割,键与值之间使用 :分割

例如:

>>> dicdict1 = {"key1":"value1", "hehe":"haha", "a":128, 154:"887"}
>>> dicdict1[154]
'887'

字典操作

创建空字典

dict1 = {}

获取字典键值对的数量

>>> dict1 = {"key1":"value1", "hehe":"haha", "a":128, 154:"887"}
>>> len(dict1)
4

获取指定键对应的值
(当指定的键不存在时直接报错)

>>> dict1 = {"key1":"value1", "hehe":"haha", "a":128, 154:"887"}
>>> dict1["key1"]
'value1'
>>> dict1[154]
'887'

更改字典键对应的值

>>> dict1 = {"key1":"value1", "hehe":"haha", "a":128, 154:"887"}
>>> dict1["key1"] = "value2"
>>> dict1["key1"]
'value2'

字典的删除操作

>>> dict1 = {"key1":"value1", "hehe":"haha", "a":128, 154:"887"}
>>> dict1["key1"] = "value2"
>>> dict1["key1"]
'value2'
>>> del dict1["key1"] # 删除某一个键值对
>>> print(dict1)
{'hehe': 'haha', 'a': 128, 154: '887'}
>>> dict1.clear() # 清空字典
>>> print(dict1)
{}
>>> del dict1; # 删除整个字典对象
>>> print(dict1) # 对象消失后整个变量失效
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'dict1' is not defined. 
>>>

字典键值说明

字典的键要求不可变而且唯一,所以可以使用 数字,字符串,元组 不能使用 list,而值没有限制可以不唯一而且可以是任意类型,类似于 Java中的 Object。
当字典中一个键出现多次后,键只会保留一个,而最终的值将被最后一次该键的赋值覆盖,前面出现的每一次赋值都不会留下。
例如:

>>> dict1 = {"key1":"value1", "hehe":"haha", "a":128, 154:"887", "key1":"new one"}
>>> dict1["key1"]
'new one'

常见方法

len(dict)
计算字典元素个数,键值对个数或者键的个数

str(dict)
输出字典,可打印的字符串

type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型

假设这里的字典对象为 dict1
dict1.clear()
删除字典内所有元素

dict1.copy()
返回一个字典的浅复制

dict1.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

dict1.get(key, default=None)
返回指定键的值,如果键不在字典中返回 default 设置的默认值

key in dict1
如果键在字典dict里返回true,否则返回false

dict1.items()
以列表返回一个视图对象

dict1.keys()
返回一个视图对象

dict1.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

dict1.update(dict2)
把字典dict2的键/值对更新到dict里

dict1.values()
返回一个视图对象

pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

popitem()
随机返回并删除字典中的最后一对键和值