Python 字典Dict内置函数与方法
1、字典
字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
变量 = {key1 : value1, key2: value2…}
2、特性
1)、键是唯一的,如果重复,最后的一个键值对会替换前面的,值不需要唯一。
2)、值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
3、常用方法
方法 | 描述 |
dict.clear() | 删除字典内所有元素 |
dict.copy() | 返回一个字典的浅复制 |
dict.fromkeys(seq[, val]) | 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 |
dict.get(key, default=None) | 返回指定键的值,如果值不在字典中返回default值 |
dict.items() | 以列表返回可遍历的(键, 值) 元组数组 |
dict.keys() | 以列表返回一个字典所有的键 |
dict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
dict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
dict.values() | 以列表返回字典中的所有值 |
dict.pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
dict.popitem() | 返回并删除字典中的最后一对键和值。 |
cmp(dict1, dict2) | 比较两个字典元素。 |
len(dict) | 计算字典元素个数,即键的总数。 |
str(dict) | 输出字典可打印的字符串表示。 |
4、字典用法
1)创建空字典
# 方式一:
dict_a = dict()
# 方式二:
dict_b = {}
print('Dict:', type(dict_a), type(dict_b))
# 创建字典
# 创建字典
# 方式一
dict_b = {'a': 1, 'b': 3, 'c': 2}
print('dict_b:', dict_b)
# 方式二
dict_c = dict.fromkeys(list('abcdef'), 1)
print('dict_c:', dict_c)
# 打印结果
dict_b: {'a': 1, 'b': 3, 'c': 2}
dict_c: {'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1}
2)访问字典
print("dict_b['b']:", dict_b['b'])
print('dict_b.get:', dict_b.get('b', None))
# 打印结果
dict_b['b']: 3
dict_b.get: 3
3)字典新增元素
# 字典新增元素
dict_b['d'] = 6
dict_b['e'] = 8
dict_b.setdefault('f', 9)
print('dict_b:', dict_b)
# 打印结果
dict_b: {'a': 1, 'b': 3, 'c': 2, 'd': 6, 'e': 8, 'f': 9}
4)删除字典元素
# 删除字典元素
print('pop:', dict_b.pop('b'))
print('dict_b 0:', dict_b)
print('popitem:', dict_b.popitem())
print('dict_b 01:', dict_b)
# 删除字典元素
del dict_b['d']
print('dict_b 1:', dict_b)
# 清空字典,清空后字典为空字典
dict_b.clear()
print('dict_b 2:', dict_b)
# 删除字典对象,删除字典后无法再访问
del dict_b
# 打印结果
pop: 3
dict_b 0: {'a': 1, 'c': 2, 'd': 6, 'e': 8, 'f': 9}
popitem: ('f', 9)
dict_b 01: {'a': 1, 'c': 2, 'd': 6, 'e': 8}
dict_b 1: {'a': 1, 'c': 2, 'e': 8}
dict_b 2: {}
5)字典update方法
# 字典update方法
dict_a = {}
dict_a['H'] = 9
print('dict_a 3:', dict_a)
print('dict_c 3:', dict_c)
dict_a.update(a=10)
print('dict_a 4:', dict_a)
dict_a.update(dict_c)
print('dict_a 4:', dict_a)
# 打印
dict_a 3: {'H': 9}
dict_c 3: {'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1}
dict_a 4: {'H': 9, 'a': 10}
dict_a 4: {'H': 9, 'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1}
5、遍历字典
# 方式一:
for key in dict_a:
# 默认是遍历字典的key
print(key, dict_a[key])
# 方式二:与方式一等价
for key in dict_a.keys():
print(key, dict_a[key])
# 方式三:
for key, value in dict_a.items():
print(key, value)
# 方式四:遍历字典中的值(不含键)
for value in dict_a.values():
print(value)
6、字典合并
dict_c = {'ccc': 666}
print('dict_a:', dict_a)
print('dict_c:', dict_c)
# 方式一:
dict_d = {}
dict_d.update(dict_a)
dict_d.update(dict_c)
print('dict_d 101:', dict_d)
# 方式二:
dict_d = dict_a.copy()
dict_d.update(dict_c)
print('dict_d 102:', dict_d)
# 方式三:
dict_d = dict(dict_a)
dict_d.update(dict_c)
print('dict_d 103:', dict_d)
# 方式四:
dict_d = {k: v for d in [dict_a, dict_c] for k, v in d.items()}
print('dict_d 104:', dict_d)
# 方式五:
dict_d = dict(list(dict_a.items()) + list(dict_c.items()))
print('dict_d 105:', dict_d)
# 方式六:
dict_d = {**dict_a, **dict_c}
print('dict_d 106:', dict_d)
# 方式七:
dict_d = dict(dict_a.items() | dict_c.items())
print('dict_d 107:', dict_d)
# 打印结果
dict_a: {'H': 9, 'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1}
dict_c: {'ccc': 666}
dict_d 101: {'H': 9, 'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1, 'ccc': 666}
dict_d 102: {'H': 9, 'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1, 'ccc': 666}
dict_d 103: {'H': 9, 'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1, 'ccc': 666}
dict_d 104: {'H': 9, 'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1, 'ccc': 666}
dict_d 105: {'H': 9, 'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1, 'ccc': 666}
dict_d 106: {'H': 9, 'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1, 'ccc': 666}
dict_d 107: {'a': 1, 'b': 1, 'd': 1, 'H': 9, 'e': 1, 'ccc': 666, 'f': 1, 'c': 1}