Python----Python中的集合及其常用方法

本文介绍了Python集合的基本概念、特点及常用运算,包括无序性、唯一性、长度、最大值和最小值等。同时,详细讲解了集合的运算如差集、并集、交集、元素判断以及集合的函数,如add、clear、copy、pop、remove等,展示了如何进行集合的动态管理和操作。
摘要由CSDN通过智能技术生成

【原文链接】

1 集合的定义和特点

  • (1) 集合是用花括号括起来的,集合的特点是元素没有顺序,元素具有唯一性,不能重复
>>> a={1,2,3,4}
>>> type(a)
<class 'set'>
>>> a={1,2,3,1,2,3}
>>> a
{1, 2, 3}

2 集合的常用运算

  • (1)集合元素没有顺序,所以不能像列表和元组那样用下标取值
>>> a={1,2,3}
>>> a[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object is not subscriptable
  • (2)集合也不支持加法运算
>>> [1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> {1,2,3}+{4,5,6}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'set' and 'set'
  • (3)len() 函数返回集合的长度,即集合中元素的个数
>>> a={1,2,3,4,5}
>>> len(a)
5
  • (4)max() 函数返回集合中元素的最大值
>>> a={1,2,3,4,5}
>>> max(a)
5
  • (5)min() 函数返回集合中元素的最小值
>>> a={1,2,3,4,5}
>>> min(a)
1
  • (6)"-"表示两个集合差集,A-B,即在A中不在B中的元素
>>> a={1,2,3,4,5,6}
>>> b={4,5,6,7,8,9}
>>> a-b
{1, 2, 3}
  • (7) "|"表示两个集合的并集,A | B, 表示A,B中所有元素的集合
>>> a={1,2,3}
>>> b={4,5,6}
>>> a | b
{1, 2, 3, 4, 5, 6}
  • (8) "&"表示两个集合的交集,A & B,表示既在A中又在B中的集合
>>> a={1,2,3,4,5,6}
>>> b={4,5,6,7,8,9}
>>> a & b
{4, 5, 6}
  • (9) in,not in 判断集合中是否有某一元素
>>> a={1,2,3,4,5,6}
>>> 0 in a
False
>>> 0 not in a
True
>>> 3 in a
True
  • (10) sum() 返回集合中所有元素之和
>>> a={1,2,3}
>>> sum(a)
6

3 集合常用的函数

  • (1) add(elem) 向集合中增加一个元素,如果此元素已经存在于集合中,则不作任何处理
>>> a={1,2,3}
>>> a.add(4)
>>> a
{1, 2, 3, 4}
>>> a.add(1)
>>> a
{1, 2, 3, 4}
  • (2) clear() 清除集合中的所有元素
>>> a={1,2,3}
>>> a
{1, 2, 3}
>>> a.clear()
>>> a
set()
  • (3)copy() 返回集合的一个浅拷贝
>>> a={1,2,3,4}
>>> b=a.copy()
>>> b
{1, 2, 3, 4}
  • (4)pop() 从集合中弹出一个元素
>>> a={1,2,3,4,5}
>>> a
{1, 2, 3, 4, 5}
>>> b=a.pop()
>>> b
1
>>> a
{2, 3, 4, 5}
  • (5)remove(elem) 从集合中去除某元素,若集合中没有此元素则会报错
>>> a={1,2,3,4,5}
>>> a.remove(3)
>>> a
{1, 2, 4, 5}
>>> a.remove(7)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 7
  • (6)union(set) 计算两个集合的合集,并返回一个新的集合,原来的两个集合没有变化
>>> a={1,2,3,4,5,6}
>>> b={3,4,5,6,7,8}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{3, 4, 5, 6, 7, 8}
>>> c=a.union(b)
>>> c
{1, 2, 3, 4, 5, 6, 7, 8}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{3, 4, 5, 6, 7, 8}
  • (7)update(set) 将set集合与原集合计算并集,并更新至原集合
>>> a={1,2,3,4,5,6}
>>> b={3,4,5,6,7,8}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{3, 4, 5, 6, 7, 8}
>>> a.update(b)
>>> a
{1, 2, 3, 4, 5, 6, 7, 8}
>>> b
{3, 4, 5, 6, 7, 8}
  • (8)difference(set) 计算集合的差集,和“-”运算符一致
>>> a={1,2,3,4,5,6}
>>> b={4,5,6,7,8,9}
>>> a.difference(b)
{1, 2, 3}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{4, 5, 6, 7, 8, 9}
  • (9)difference_update(set) 计算差集,将结果更新至原集合
>>> a={1,2,3,4,5,6}
>>> b={4,5,6,7,8,9}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{4, 5, 6, 7, 8, 9}
>>> a.difference_update(b)
>>> a
{1, 2, 3}
>>> b
{4, 5, 6, 7, 8, 9}
  • (10)discard(elem) 与remove(elem)功能一致,只不过discard移除的元素若不存在,不会报错
>>> a={1,2,3,4,5,6}
>>> a.discard(4)
>>> a
{1, 2, 3, 5, 6}
>>> a.discard(10)
>>> a
{1, 2, 3, 5, 6}
  • (11)intersection(set) 计算两个集合的交集,结果生成新的集合,原有的集合不变
>>> a={1,2,3,4,5,6}
>>> b={4,5,6,7,8,9}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{4, 5, 6, 7, 8, 9}
>>> a.intersection(b)
{4, 5, 6}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{4, 5, 6, 7, 8, 9}
  • (12)intersection_update(set) 计算两个交集,结果更新至原有集合
>>> a={1,2,3,4,5,6}
>>> b={4,5,6,7,8,9}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{4, 5, 6, 7, 8, 9}
>>> a.intersection_update(b)
>>> a
{4, 5, 6}
>>> b
{4, 5, 6, 7, 8, 9}
  • (13)isdisjoint(set) 判断两个是否有公共元素,若没有返回True,否则返回False
>>> a={1,2,3,4,5,6}
>>> b={4,5,6,7,8,9}
>>> c={7,8,9,0}
>>> a.isdisjoint(b)
False
>>> a.isdisjoint(c)
True
  • (14)issubset(set) 判断是否为子集,若是set的子集,返回True,否则返回False
>>> a={1,2,3,4}
>>> b={1,2,3,4,5}
>>> a.issubset(b)
True
>>> c={2,3,4,5}
>>> a.issubset(c)
False
  • (15)issuperset(set) 判断是否为超集,若是返回True,否则返回False
>>> a={1,2,3,4,5,6}
>>> b={1,2,3,4}
>>> c={1,2,3,4,5,6,7,8}
>>> a.issuperset(b)
True
>>> a.issuperset(c)
False
  • (17)symmetric_difference(set) 返回两个集合的不重复的元素,原有的集合不变
>>> a={1,2,3,4,5,6}
>>> b={4,5,6,7,8,9}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{4, 5, 6, 7, 8, 9}
>>> a.symmetric_difference(b)
{1, 2, 3, 7, 8, 9}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{4, 5, 6, 7, 8, 9}
  • (17)symmetric_difference_update(set) 返回两个集合的不重复的元素,并将结果更新至原有集合
>>> a={1,2,3,4,5,6}
>>> b={4,5,6,7,8,9}
>>> a
{1, 2, 3, 4, 5, 6}
>>> b
{4, 5, 6, 7, 8, 9}
>>> a.symmetric_difference_update(b)
>>> a
{1, 2, 3, 7, 8, 9}
>>> b
{4, 5, 6, 7, 8, 9}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redrose2100

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值