一、集合的关系运算
# 集合,集合无序且不重复(去重和关系运算)
# 关系运算
hobbies1 = ['吃饭', '睡觉', '追剧', '王者', '跳操', '打豆豆'] # 列表
hobbies2 = ['吃饭', '睡觉', '旅行', '跳舞']
both_like = []
# 找出共同爱好
for i in hobbies1:
if i in hobbies2:
print(i)
both_like.append(i)
print(both_like)
hobbies1 = {'吃饭', '睡觉', '追剧', '王者', '跳操', '打豆豆'} # 集合
hobbies2 = {'吃饭', '睡觉', '旅行', '跳舞'}
# 找出共同爱好
# 取交集
print(f'取交集', hobbies1 & hobbies2)
# 取并集
res = hobbies1 | hobbies2
print(f'取并集', res)
# 取差集 (取出每个集合 独有的)
res1 = hobbies1 - hobbies2 # 1中不包含2
res2 = hobbies2 - hobbies1
print(f'取差集', res1)
print(f'取差集', res2)
# 取对称差集 (把两个集合的独有元素都取出来)
res = (hobbies1 - hobbies2) | (hobbies2 - hobbies1)
print(f'取对称差集', res)
print(f'取对称差集', hobbies1 ^ hobbies2)
# 父子集
s1 = {1, 2, 3}
s2 = {1, 2, 3, 4, 5, 6}
print(f's1>s2', s1 > s2)
print(f's1<s2', s1 < s2) # s2包含s1
print(f's1==s2', s1 == s2)
运行结果:
吃饭
睡觉
['吃饭', '睡觉']
取交集 {'吃饭', '睡觉'}
取并集 {'追剧', '跳操', '打豆豆', '睡觉', '旅行', '王者', '吃饭', '跳舞'}
取差集 {'追剧', '跳操', '打豆豆', '王者'}
取差集 {'旅行', '跳舞'}
取对称差集 {'追剧', '跳操', '打豆豆', '王者', '旅行', '跳舞'}
取对称差集 {'追剧', '跳操', '打豆豆', '旅行', '王者', '跳舞'}
s1>s2 False
s1<s2 True
s1==s2 False
补充:父集:s1.issuperset(s2);s1.issubset(s2)
二、集合的内置方法
1、集合去重
# 集合去重
l = ['a', 'd', 'a', 'b', 'z', 'b']
# 将列表转为集合
print(set(l))
info = [
['张三', 19],
['李四', 98],
['王五', 100],
['张三', 19],
['王五', 100]
]
new_info = []
for i in info:
if i not in new_info:
new_info.append(i)
print(new_info)
运行结果:
{'d', 'a', 'z', 'b'}
[['张三', 19], ['李四', 98], ['王五', 100]]
2、其他
s = {1, 2, 3, 4}
# updata
s.update([4, 5, 6])
print(s)
运行结果:
{1, 2, 3, 4, 5, 6}
补充:remove:删除集合中摸个元素,若元素不存在,则报错
dicard:删除集合中某个元素,若元素不存在,不报错