字典
通过名称来访问其各个值的数据结构
-
映射
。字典是Python
中唯一的内置映射类型。
dict
使用 dict
从其他映射或键值对序列创建字典
1 | 'name', 'akashi'), ('age', 22)] items = [( |
或者
1 | 'akashi', age=22) dict(name= |
基本的字典操作
使用 | 描述 |
---|---|
len(item) |
返回字典 item 包含的项数 |
item[key] |
返回与键 key 相关联的值 |
item[key] = vlue |
将值 vule 关联到 key |
del item[key] |
删除键为 key 的项 |
key in item |
检查字典 item 是否包含键为 key 的项 |
字典方法
方法 | 使用 | 描述 |
---|---|---|
clear |
adict.clear() |
删除所有的字典项 |
copy |
adict.copy() |
浅复制 |
keys |
adict.keys() |
获取字典的键 |
values |
adict.values() |
获取字典的值 |
items |
adict.items() |
获取字典的键值对 |
get |
adict.get(k) |
返回 k 对应的值,如果没有,返回 None |
get |
adict.get(k, alt) |
返回 k 对应的值,如果没有,返回 alt |
pop |
adict.pop(key) |
弹出指定的键向关联的值,并从字典中删除 |
popitem |
adict.popitem() |
随机弹出一个字典项,并从字典中删除 |
setdefault |
adict.setdefault(key, value) |
获取与指定键相关联的值,如果不存在,在字典中添加指定的键值对 |
update |
adict.update(otherdict) |
使用一个字典项更新另一个字典 |
clear()
删除所有的字典项
1 | item = { |
输出:
1 | {'name': 'akashi', 'age': 22} |
copy()
浅复制
1 | item = { |
输出:
1 | {'name': 'akashi', 'age': 22, 'list': [1, 2, 3], 'addr': 'local'} |
当替换副本中的值时,原件不受影响,而如果修改副本中的值(就地修改而不是替换),原件也会发生变化
深复制
1 | from copy import deepcopy |
输出:
1 | {'name': 'akashi', 'age': 22, 'list': [1, 2], 'addr': 'local'} |
keys()
获取字典中的键
1 | item = { |
输出:
1 | dict_keys(['name', 'age']) |
values()
获取字典中的值
1 | item = { |
输出:
1 | dict_values(['akashi', 22]) |
items()
获取字典中的键值
1 | item = { |
输出:
1 | dict_items([('name', 'akashi'), ('age', 22)]) |
get()
获取字典中的值
1 | item = { |
输出: akashi
当指定的键不存在时,会输出 None
不存在时,指定默认值
1 | item = { |
输出: asuka
pop()
从字典中弹出一个值
1 | item = { |
输出:
1 | akashi |
popitem()
从字典中随机弹出一个键值对
因为字典里面是无序的,弹出的值是随机的
1 | item = { |
输出:
1 | ('age', 22) |
setdefault()
与 get()
类似,获取指定的键关联的值,但不同的是,如果不存在,会在字典中添加指定的键值对
1 | item = { |
输出:
1 | local |
update()
更新字典,有则替换,没有则添加
1 | item = { |
输出:
1 | {'name': 'akashi', 'age': 21, 'addr': 'local'} |