# 集合的定义和特性
#定义
a = {1,2,'hello'}#里面必须有不可变类型元素
b = [1,1,2,1,2,3,3,4,4]
c =list(set(b))
print(a,c)
#特性
d = {1,1,2,2,2}
# f = {1,2,[1,2,3,4]}#确定性,元素必须是不可变类型
print(type(d))
print(d)#唯一性,去重
#print(d[0])#会报错,集合不可以用索引取值,无序性
# print(f)
运算
# 交集
a = {1,3,4,5,6}
b = {4,5,6,7,9}
print(a&b)#两个集合中共有的部分
# 并集
print(a|b)#两个集合中共有的部分与非共有的部分
# 差集
print(b-a)#减集合中除去被减集合中相同的部分,减集合中剩余的部分
# 增
print(a.add('hello'))#返回None,不返回集合值,查看结果需打印集合
print(a)
# 删
print(a.pop())
print(a.remove(6))#删指定元素,不返回结果,打印原集合查看结果
print(a)
# 改
print(a.update(['world']))#不加[]update会迭代取值,把每一个字符全部都单独取出来
print(a)
# 查
print(a.isdisjoint(b))#isdisjoint,判断2个集合不相交
print(dir(a))#dir,查看该对象能用的使用方法
# 字典
# 定义
a = {'我的工作是':'网工','每月工资':10000}#{键:值},键(key)唯一性,值(value)
b =dict()#这种方式定义不给元素,只能定义空字典
print(a,b)
# 增
print(b.setdefault('上缴老婆',9999))#基于key值,有则查,无则增,返回增加key的value值
print(b)
# 删
print(b.clear())#清空字典,返回None
print(b)
print(a.pop('我的工作是'))#pop,删除指定key的键值对,并返回指定key值得value
print(a.popitem())#popitem,不指定元素,删除并换回最后一组键值对
# 改
a.update({'我的工作是':'组长'})#有则改,无则增,直接跟字典定义模式
print(a)
a.update({'我的工作是':'网工'})
print(a)
# 查
f = {'我的工作是':'网工','每月工资':10000,'上缴老婆':9999}
print(f.get('我的工作是'))#通过key值查询value,单个(优先使用查询不到不报错)
print(f.keys())#查询字典中所有key值
print(f.values())#查询字典中所有value值
print(f.items())#返回类似元组的键值对