字典是python中唯一内建的映射类型,字典中的值并没有特殊的顺序,但是都存储在一个特定的键里,键可以是数字、字符串甚至是元组。(不能是列表)
字典是由多个键及与其对用的值构成的键-值对组成(键-值对称为项)。每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,整个字典用一对大括号括起来。
1. 字典相关操作
1.1 创建字典
# 1. 通过键值对的序列创建字典
l = [[1,'one'],[2,'two']]
d = dict(l)
# 2. 直接创建
d = {3:'three',4:'fout'}
#3. 根据关键字参数创建
d = dict(a=1,b=2)
1.2 修改字典项
d[key]=value
直接给字典的键赋值,如果该键不存在则创建新的项,如果存在则修改该键的值。
1.3 访问字典值
d[key]
存在则显示value,不存在key则报错KeyError
1.4 删除字典项
del d['keyName']
1.5 清空字典
d.clear()
2. 字典的内置方法
函数 | 描述 |
---|---|
dict.fromkeys(seq[, value]) | 用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值,默认为None |
dict.keys() | 返回字典中所有键的视图,支持迭代,可以使用 list() 来转换为列表,列表元素为字典中的所有键 |
dict.values() | 返回字典中所有值的视图,支持迭代,可以使用 list() 来转换为列表,列表元素为字典中的所有值 |
dict.items() | 返回字典中所有键值对视图,支持迭代,可以使用 list() 来转换为列表,列表元素是所有键值对,通过元组(键, 值) 组合 |
dict.get(key[, default=None]) | 返回指定键的值,如果值不在字典中返回默认值。 |
dict.clear() | 删除字典内所有元素。 |
dict.copy() | 返回一个字典的浅复制。 |
dict.pop(key) | 删除字典给定键 key 所对应的值,返回值为被删除的值。 |
dict.popitem() | 随机返回并删除字典中的最后一对键和值。如果字典已经为空,却调用了此方法,就报出KeyError异常。 |
dict.setdefault(key[, default=None]) | 和 get()方法 类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。 |
dict1.update(dict2) | 把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict1 里。 |
key in dict | 判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false |
案例:
- dict1.update(dict2)
#该函数没有返回值
dict1 = {1:'a',2:'b',3:'c'}
dict2 = {1:'a',2:'B',3:'C',4:'D'}
dict1.update(dict2)
print(dict1)
结果是:
{1: 'a', 2: 'B', 3: 'C', 4: 'D'}
3. 字典的内置函数
序号 | 函数及描述 | 实例 |
---|---|---|
1 | len(dict) | `计算字典元素个数,即键的总数。 |
2 | str(dict) | 输出字典,以可打印的字符串表示。 |
3 | type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型 |
案例:
>>> d
{0: 'a', 1: 'a', 2: 'a'}
>>> str(d)
"{0: 'a', 1: 'a', 2: 'a'"
>>> t = eval(str(d))
>>> t
{0: 'a', 1: 'a', 2}
4. 将字符串格式设置功能用于字典
- format_map
d = {'key0':'value0','key1':'value1'}
print('{key0},{key1}'.format_map(d))
#运行结果:value0,value1