Python-集合

一、集合的关系运算

# 集合,集合无序且不重复(去重和关系运算)

# 关系运算
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:删除集合中某个元素,若元素不存在,不报错

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值