python集合常用方法_Python集合操作方法详解

集合是无序的,天生不重复的数据组合,它的作用如下:

去重,即:把一个列表变成集合,就去重了

关系测试,即:测试两组集合的交集、并集和差集等

一、集合常用方法总结

202029131034796.png

二、定义

1、语法

>>> name_1 = [1,2,3,4,7,8,7,10]

#把列表转换为集合

>>> name_1 = set(name_1)

#转换后,去重

>>> print(name_1,type(name_1))

{1, 2, 3, 4, 7, 8, 10}

三、关系测试

1、交集(intersection())

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出结果

>>> name_1.intersection(name_2)

{8, 1, 10, 3}

2、并集(union())

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出结果

>>> name_1.union(name_2)

{1, 2, 3, 4, 5, 7, 8, 10}

3、差集(difference())

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出结果

>>> name_1.difference(name_2)

{2, 4, 7}

特别提示:差集取的是数值在第一个集合中,但是不在第二个集合中(在我不在你)

4、issubset()

判断一个集合是否是另一个集合的子集

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_3 = [1,2,3,4]

>>> name_1 = set(name_1)

>>> name_3 = set(name_3)

#输出结果

>>> name_3.issubset(name_1)

True

5、issuperset()

判断一个集合是否是另一个集合的父集

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_3 = [1,2,3,4]

>>> name_1 = set(name_1)

>>> name_3 = set(name_3)

#输出结果

>>> name_1.issuperset(name_3)

True

6、对称差集(symmetric_difference())

把两个集合没有交集的数值取出来

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出结果

>>> name_1.symmetric_difference(name_2)

{2, 4, 5, 7}

7、isdisjoint()

判断两个集合是否有交集,没有交集,则返回True

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_3 = [11]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

>>> name_3 = set(name_3)

#有交集

>>> name_1.isdisjoint(name_2)

False

#无交集

>>> name_1.isdisjoint(name_3)

True

四、关系测试(特殊符号)

1、交集(&)

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#结果输出

>>> name_1 & name_2

{8, 1, 10, 3}

2、并集(|)

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#结果输出

>>> name_1 | name_2

{1, 2, 3, 4, 5, 7, 8, 10}

3、差集(-)

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#结果输出

>>> name_1 - name_2

{2, 4, 7}

4、对称差集(^)

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_2 = [1,3,5,8,10]

>>> name_1 = set(name_1)

>>> name_2 = set(name_2)

#输出

>>> name_1 ^ name_2

{2, 4, 5, 7}

5、是否是子集(<=)

>>> name_1 = [1,2,3,4,7,8,10]

>>> name_3 = [1,2,3,4]

>>> name_1 = set(name_1)

>>> name_3 = set(name_3)

#输出

>>> name_3 <= name_1

True

6、是否是父集(>=)

>>> name_1 = [1,2,3,4,7,8,10]

>>> name_3 = [1,2,3,4]

>>> name_1 = set(name_1)

>>> name_3 = set(name_3)

#输出

>>> name_1 >= name_3

True

五、基本操作

1、添加(add())

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

#添加已存在,不报错

>>> name_2.add(1)

>>> name_2

{8, 1, 10, 3, 5}

#添加不存在,添加一个新的数值

>>> name_2.add(11)

>>> name_2

{1, 3, 5, 8, 10, 11}

2、添加多项(update())

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

>>> name_2.update([12,13,14])

#输出结果

>>> name_2

{1, 3, 5, 8, 10, 12, 13, 14}

3、删除(remove(),pop(),discard())

①remove()

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

>>> name_2

{8, 1, 10, 3, 5}

>>> name_2.remove(1)

#输出

>>> name_2

{8, 10, 3, 5}

#删除不存在的元素,会报错

>>> name_2.remove(1)

Traceback (most recent call last):

File "", line 1, in

KeyError: 1

特别提示:用remove删除时,当元素不存在,会报错

②pop()

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

>>> name_2

{8, 1, 10, 3, 5}

#输出

>>> name_2.pop()

8

特别提示:pop是随机删除集合中的某个元素,并且打印

③discard()

>>> name_2 = [1,3,5,8,10]

>>> name_2 = set(name_2)

>>> name_2.discard(10)

#输出结果

>>> name_2

{8, 1, 3, 5}

#删除不存在元素,不报错

>>> name_2.discard(10)

特别提示:用discard删除不存在的元素,不会出现报错

4、长度(len())

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_1 = set(name_1)

#结果输出

>>> len(name_1)

7

5、x in s

测试 x 是否是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_1 = set(name_1)

#结果输出

>>> 1 in name_1

True

6、x not in s

测试 x 是否不是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10]

>>> name_1 = set(name_1)

#输出

>>> 12 not in name_1

True

更多关于Python集合操作方法可查看下面的相关链接

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值