dict 字典
简介:
字典是另一种可变容器模型,且可存储任意类型对象。
键必须是唯一的,但值则不必;值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
使用键-值(key-value)存储,具有极快的查找速度。
# 创建方式 dict1 = {'name': 'tom', 'age': 10, 'address': 'beijing'} dict2 = dict(name='Tom', age=10, address='beijing') dict3 = dict([('name', 'tom'), ('age', 10), ('address', 'beijing')]) # 快速构建 quick_dict = dict.fromkeys([1, 2, 3], 'python') print(quick_dict) # {1: 'python', 2: 'python', 3: 'python'}
遍历dict
simple_dict = {'name': 'tom', 'age': 10, 'address': 'beijing'}
# 遍历key
for key in simple_dict.keys():
print(key)
# 遍历value
for value in simple_dict.values():
print(value)
# 遍历key-value
for key, value in simple_dict.items():
print(key, value)
字典相关操作
根据键访问值
simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'} # 获取元素 print(simple_dict['name']) # Tom # print(simple_dict['nameAAA']) # 异常:KeyError # 使用get方法,可以设置默认值 print(simple_dict.get('age')) # 10 print(simple_dict.get('test')) # None print(simple_dict.get('test', 100)) # 100
判断key是否存在
simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'} print('name' in simple_dict) # True print(simple_dict.__contains__('name')) # True print(simple_dict.__contains__('test')) # False
添加元素
simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'} simple2_dict = {'A': 'a', 'B': 'b', 'C': 'c'} simple_dict['id'] = '10001' # 添加元素 simple_dict.update(simple2_dict) # 添加字段所有元素
删除元素
simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'} # 删除指定key,并返回value age = simple_dict.pop('age') # 删除key del simple_dict['address'] # 情况dict simple_dict.clear() # 删除对象 del simple_dict
修改元素
simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'} # 修改元素 simple_dict['name'] = 'Jim'
赋值: = 和 copy
simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'} # 赋值地址 simple2_dict = simple_dict simple2_dict['name'] = 'Jim' print(simple2_dict) # {'name': 'Jim', 'age': 10, 'address': 'beijing'} print(simple_dict) # {'name': 'Jim', 'age': 10, 'address': 'beijing'} # copy:赋值值 simple3_dict = simple_dict.copy() simple3_dict['name'] = 'Jake' print(simple3_dict) # {'name': 'Jake', 'age': 10, 'address': 'beijing'} print(simple_dict) # {'name': 'Tom', 'age': 10, 'address': 'beijing'}
setdefault
simple_dict = {'name': 'Jim', 'age': 20, 'height': 172} # 设置默认值并获取值 default = simple_dict.setdefault('test', 100)
排序
根据value排序
num_dict = {'a': 5, 'b': 9, 'c': 1, 'd': 7, 'e': 6}
new_dict = dict(sorted(num_dict.items(), key=lambda item: item[1]))
print(new_dict) # {'c': 1, 'a': 5, 'e': 6, 'd': 7, 'b': 9}
num_dict = {'a': 5, 'b': 9, 'c': 1, 'd': 7, 'e': 6}
tmp_dict = {}
values = num_dict.values()
values = sorted(values)
for i in values:
for k, v in num_dict.items():
if i == v:
tmp_dict[k] = v
print(tmp_dict) # {'c': 1, 'a': 5, 'e': 6, 'd': 7, 'b': 9}
set 集合
简介
集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。
创建一个空集合,你必须用 set() 而不是 {};后者创建一个空的字典 。
# 创建方式 set1 = {1, 2, 3, 4, 5} set2 = set([1, 2, 3, 4, 5]) set3 = set('abcdefg')
集合相关操作
simple_set = {'A', 'B', 'C', 'D', 'E', 'F'}
# 添加
simple_set.add('AAA')
# 删除
simple_set.remove('AAA')
# 更新
simple_set.update({'M', 'N'})
frozenset
# 不可以改变(增删改)
simple2_set = frozenset({1, 2, 3, 4, 5})
操作符 (&、|、-、^)
a = {1, 2}
b = {2, 3}
c = a & b # 交集
d = a | b # 并集
e = a - b # 差集
f = a ^ b # 异或集合
print(c) # {2}
print(d) # {1, 2, 3}
print(e) # {1}
print(f) # {1, 3}