第九集:数据类型-字典和集合推导式


'''
字典推导式
'''

vardict = {'a' :1 ,2 :'s' ,'c' :4}
print(vardict)
for k ,v in vardict.items():
print(k ,v ,end='')
# {'a': 1, 2: 's', 'c': 4}

# 更新字典
# new1 = vardict.update(d=11)
vardict.update({'d':33})
print()
print(vardict)

# 使用字典推导式 互换key value
new_dict = {v:k for k,v in vardict.items()}
new_dict1 = {v for k,v in vardict.items()} #返回的是一个集合
print(new_dict)

# 结果
# {'a': 1, 2: 's', 'c': 4}
# a 12 sc 4
# {'a': 1, 2: 's', 'c': 4, 'd': 33}
# {1: 'a', 's': 2, 4: 'c', 33: 'd'}



'''
集合推导式
什么事集合:{}
'''
# 定义集合
vars = {123,'abc',False,'love',True,(1,2,3),0}
# 1,无序 2 Flase在集合中表示为0 所以只能存在一个,true代表1 和1 只能存在一个
# 3,元素的值不能重复
print(vars)
# 检测值
re = 12 in vars
re = 12 not in vars
print(re)
# 集合的便利
for i in vars:
print(i,type(i))

print('清空集合',vars.clear())
varss = {123,'abc',False,'love',True,(1,2,3),0}
# 添加元素
varss.update({1, 2, 3})
print(varss)

# 浅拷贝
vd= varss.copy()
print(f'浅拷贝{vd}')
# 结果
# True
# abc <class 'str'>
# False <class 'bool'>
# love <class 'str'>
# True <class 'bool'>
# (1, 2, 3) <class 'tuple'>
# 123 <class 'int'>
# 清空集合 None
# {'abc', False, 'love', True, 2, 3, (1, 2, 3), 123}
# 浅拷贝{'abc', False, 'love', True, 2, 3, (1, 2, 3), 123}

'''
冰冻集合:
语法:定义冰冻集合,只能使用frozenset()进行冰冻集合定义
并冻集合只能做集合相关的运算:求交集,差集...
'''
jihe = {1,2,3}
vars = frozenset(jihe)
# vars = frozenset([3,4,5])
print(vars)

# 冰冻集合的推导式
res = frozenset(i<<1 for i in range(6))
print(res)
结果:
frozenset({1, 2, 3})
frozenset({0, 2, 4, 6, 8, 10})
posted @ 2022-02-27 15:11  冬天里的狐狸  阅读(26)  评论(0编辑  收藏  举报