字典是一种可变容器,可存储任意类型的键值对。
字典dict
python中用关键字dict标识字典,字典中键必须是不可变的(如字符串,数字或元组);值可以取任何数据类型:
- 每个键值 key:value 对用冒号
:
分割; - 键值对之间用逗号 , 分割;
- 整个字典包括在花括号 {} 中。
- 通过使用
{}或dict()
来创建字典
data = {"one": 1, 3: "three", (1, 2): ["one", "two"]}
for k, v in data.items():
print(k, v)
print(data[3])
print(data[(1, 2)])
字典操作
通过[键]
来访问(访问不存在的键会抛出KeyError异常)、添加或修改字典里的值。
通过del来删除字典或里面的元素:
del myDict[K]
:删除K元素(K不存在会抛出KeyError异常);del myDict
:删除整个字典;myDict.clear()
:清空字典;key in myDict
/key not in myDict
:判断键是否存在;
字典遍历
通过for循环可方便地遍历字典
遍历key
根据key遍历字典:
for key in dict_map:
print(key, dict_map[key])
#等价于下面这种方式
for key in dict_map.keys():
print(key, dict_map[key])
遍历value
遍历字典中的所有value:
for value in dict_map.values():
print(value)
同时遍历key与value
遍历字典中的key与value:
for key, value in dict_map.items():
print(key, value)
# 把key与value作为一个整体(元组)遍历
for kv in dict_map.items():
print(kv) # kv为 (key, value)
操作函数
内置函数
Python含了以下内置函数可操作字典:
序号 | 函数及描述 |
---|---|
1 | cmp(dict1, dict2)比较两个字典元素 |
2 | len(dict)计算字典元素个数,即键的总数 |
3 | str(dict)输出字典可打印的字符串表示 |
4 | type(variable)返回输入的变量类型,如果变量是字典就返回字典类型 |
内置方法
Python字典包含了以下内置方法:
序号 | 函数及描述 |
---|---|
1 | dict.clear()删除字典内所有元素 |
2 | dict.copy()返回一个字典的浅复制 |
3 | dict.fromkeys(seq [, val])创建一个新字典,以序列seq中元素作为字典的键,val为字典所有键对应的初始值(若val不提供,则使用None) |
4 | dict.get(key, default = None)返回指定键的值,如果值不在字典中返回default值 |
5 | dict.has_key(key)如果键在字典dict中返回true,否则返回false |
6 | dict.items()以列表返回可遍历的(键,值)元组数组 |
7 | dict.keys()以列表返回一个字典所有的键 |
8 | dict.setdefault(key, default=None),若键不存在于字典中,将会添加键并将值设为default,并返回;否则直接返回对应的值; |
9 | dict.update(dict2)把字典dict2的键/值对更新到dict里 |
10 | dict.values()以列表返回字典中的所有值 |
11 | pop(key[,default])删除字典给定键key所对应的值,返回值为被删除的值。 |
12 | popitem()随机返回并删除字典中的一对键和值 |