七 集合
# pythons = ['张三', '李四', '王五', '刘6', 'egon', 'lili', '李建国']
# linux = ['铁蛋', '铜蛋', '钢弹', 'egon', '狗蛋', 'lili']
#
# l = []
# for name in pythons:
# if name in linux:
# l.append(name)
# print(l)
# ======================================基本使用======================================
# 1、用途
# (1) 关系运算
# (2)去重(鸡肋)
# names = ['egon','tom','jack','egon','egon','egon']
# s = set(names)
# print(list(s))
# students_info = [
# {"name": 'egon', 'age': 18},
# {"name": 'tom', 'age': 18},
# {"name": 'jack', 'age': 18},
# {"name": 'egon', 'age': 18},
# {"name": 'egon', 'age': 18},
# {"name": 'egon', 'age': 18},
# {"name": 'egon', 'age': 18},
# ]
#
# res = []
#
# for info in students_info:
# if info not in res:
# res.append(info)
#
# print(res) # [{'name': 'egon', 'age': 18}, {'name': 'tom', 'age': 18}, {'name': 'jack', 'age': 18}]
# 2、定义方式:在{}内用逗号分隔开多个元素,集合元素的特点如下
# 1、集合内元素不能重复
# 2、集合内的元素必须是不可变类型
# 3、集合内的元素无序
# s = {111,33.333,(1,2,3),111,111,111,111} # s=set(...)
# print(s)
# set数据类型转换
# print(set('hello'))
# print(set([(1,2,3),[1,2,3,4,5],(1,2,3)]))
# 3、常用操作+内置的方法
# 优先掌握的操作:
# 1、长度len
# s = {1,2,3}
# print(len(s))
# 2、成员运算in和not in
# s = {1,2,3}
# print(1 in s)
pythons = {'张三', '李四', '王五', '刘6', 'egon', 'lili', '李建国'}
linuxs = {'铁蛋', '铜蛋', '钢弹', 'egon', '狗蛋', 'lili'}
# 3、|合集: 求所有的同学姓名
# print(pythons | linuxs)
# print(pythons.union(linuxs))
# 4、&交集: 同时报名两门课程的同学
# print(pythons & linuxs)
# print(pythons.intersection(linuxs))
# pythons = pythons & linuxs
# pythons.intersection_update(linuxs)
# 5、-差集: 求只报名了python课程的同学
# print(pythons - linuxs)
# print(pythons.difference(linuxs))
# pythons.difference_update(linuxs)
# print(linuxs - pythons)
# 6、^对称差集: 求没有同时报名两门课程的同学
# s = (pythons - linuxs) | (linuxs - pythons)
# s = pythons ^ linuxs
# print(s)
# s = pythons.symmetric_difference(linuxs)
# print(s)
# 7、==
# s1 = {1,2,3}
# s2 = {3,1,2}
# print(s1 == s2)
# 8、父集:>=,子集:<=
# s1 = {1,2,3}
# s2 = {1,2}
# # s2 = {1,2,4}
# print(s1 >= s2)
# print(s1.issuperset(s2))
#
# print(s2 <= s1)
# print(s2.issubset(s1))
# 了解即可
# 需要掌握
s1 = {1, 2, 3}
# s1.update({3,4,5,6})
# res = s1.pop()
# s1.remove(22222)
# print(s1)
# s1.discard(2222222)
# print(s1)
# s1.add(4)
# print(s1)
s2 = {3, 4, 5, 6}
print(s1.isdisjoint(s2))
# ======================================该类型总结====================================
# 存多个值
# 无序
# 可变
浙公网安备 33010602011771号