字典
字典是一个可变数据类型, 可保存键值对
字典在保存数据时时无序的,不能通过下标获取
字典里的key不可重复,(后会覆盖前的值)
value可以为任意数字类型,key只能是不可变数据类型
dict = {key:value, key:value, .... , key:value}
字典的增删改查
# 查找
dict['key'] # print => value 如果查找的key不存在会报错
dict.get('key', 'default') # 使用get方法, 若key不存在则返回None, 可设置默认值
# 新增
dict['new_key'] = 'new_value'
# 删除 clear()、pop()、popitem()
result = dict.pop('key') # 弹出键值对 只返回值
result = dict.popitem() # 弹出键值对 返回一个tuple('key', 'value')
dict.clear() # 清空字典
del dict['key'] # 删除整个键值对
# 修改
dict['key'] = new_value
# 列表合并:list.extend(list1)或new_list = list + list1
# 字典合并:dict.update(dict2) 字典不支持加法运算
# 元组合并: new_tuple = tuple + tuple 生成新元组
字典的遍历
# 方法1: for....in
for x in dict:
print(x) # print => key
print(x,'=',dict[x])
# 方法2: 获取所有key,找value
for x in dict.keys():
print(dict[x]) # print => value
# 方法3: 获取到所有的value
for x in dict.values():
print(x)
# 方法4:获取到所有键值对
for x in dict.items():
print(x) # print => tuple('key':'value')
# 方法5:拆包
for k, v in dict.items():
print(k, v)
字典推导式
new_dict = {v:k for k, v in dict.items()}
集合
无序的,不重复的数据集合, 如果有重复的数据会自动去除
使用{}: 字典(键值对),集合(单个元素)
空集合的表示方式:set()
set 支持很多算数运算符:
# 集合
x = {val, val, val, ......, val}
# 添加
set.add(val)
# 删除
x = set.pop() # 随机弹出一个元素
set.remove(val) # 删除一个指定元素, val不存在会报错
set.clear()
set.union(new_set) # 相加求并集,生成新集合
set.update(new_set) # 拼接,在原有set基础上添加
# 减法: 获得差集
set1 - set2
# 并运算:求交集
set1 & set2
# 与运算: 求并集
set1 | set2
# 异或运算: 差集的并集 去重
set1 ^ set2