Python 集合

Python集合

一、集合的创建

1.1、用 set() 方法

1.1.1 创建空集合

>>> st = set()
>>> st
set()

1.1.2 从字符串创建

>>> st = set('abccba')
>>> st
{'a', 'b', 'c'}

1.1.3 从元组创建

>>> st = set(('a', 'b', 'c'))
>>> st
{'a', 'b', 'c'}

1.1.4 从字典创建

>>> st = set({'a':1, 'b':2, 'c':3})
>>> st
{'a', 'b', 'c'},将字典的键作为集合的元素

1.2、用大括号 { }

1.2.1 直接创建

>>> st = {'a', 'b', 'c', 'b'}
>>> st
{'a', 'b', 'c'}

1.2.2 用集合推导式

>>> st = {x for x in 'abcdefcba' if x not in 'def'}
>>> st
{'a', 'b' ,'c'}

二、两个集合间的运算

集合的四个基本运算:交、并、差、补

可以用运算符或集合内置方法;

>>> a = {'a', 'b', 'c', 'd'}
>>> b = {'c', 'd', 'e', 'f'}

2.1 交

# 方法1
>>> a & b
{'c', 'd'}

# 方法2
>>> a.intersection(b)
{'c', 'd'}

2.2 并

# 方法1
>>> a | b
{'a', 'b', 'c', 'd', 'e', 'f'}

# 方法2
>>> a.union(b)
{'a', 'b', 'c', 'd', 'e', 'f'}

2.3 差

# 方法1
>>> a - b
{'a', 'b'}

# 方法2
>>> a.difference(b)
{'a', 'b'}

2.4 补

注意:这里的“补”运算,全集定义为 a | b , 子集定义为 a & b

因此,该运算可理解为,求 a 和 b 的并集中,不包含 a b 交集的元素

>>> a ^ b
{'a', 'b', 'e', 'f'}

三、集合的基本操作

3.1、添加元素

>>> a = {'a', 'b', 'c'}

# 方法1,用add()方法添加一个元素
>>> a.add('d')
>>> a
{'a', 'b', 'c', 'd'}

# 方法2,用update()方法可添加多个元素,参数可以是列表、元组、字典等
# 基本语法:s.update(x), x可以有多个,用逗号隔开
>>> a.update({1, 3}) # 相当于集合并运算
>>> a
{1, 3, 'a', 'b', 'c', 'd'}
>>> a.update([1,4],[5,6])
>>> a
{1, 3, 4, 5, 6, 'a', 'b', 'c', 'd'}

3.2 移除元素

>>> a = {'a', 'b', 'c'}

# 方法1,用remove()方法,如果元素不存在,会报错
>>> a.remove('b')
>>> a
{'a', 'c'}
>>> a.remove('d')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'd'

# 方法2,用discard()方法,如果元素不存在,不会报错
>>> a.discard('d')
>>> a
{'a', 'c'}

3.3 计算集合元素个数

用 len()

>>> a = {'a', 'b', 'c'}
>>> len(a)
3

3.4 清空集合

用 clear() 方法

>>> a = {'a', 'b', 'c'}
>>> a.clear()
>>> a
set()

参考资料

1、菜鸟教程

2、简书:python集合的运算(交集、并集、差集、补集)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值