【6.2 python中的集合】

python中的集合


Python中的集合(Set)是一个无序的、不包含重复元素的数据结构。集合主要用于进行数学上的集合操作,如并集、交集、差集和对称差集等。集合是由花括号{}创建的,但需要注意的是,在创建空集合时不能使用{}(这会被解释为空字典),而应该使用set()

集合的特点

  1. 无序性:集合中的元素是无序的,因此你不能通过索引来访问集合中的元素。
  2. 唯一性:集合中的元素是唯一的,自动过滤重复元素。
  3. 不可变性(指元素不可变,但集合本身是可变的):集合中的元素必须是不可变类型,如整数、浮点数、字符串、元组等。但集合本身是可变的,可以添加或删除元素。

创建集合

# 创建一个空集合
my_set = set()

# 创建一个包含一些元素的集合
my_set = {1, 2, 3, 4, 5}

# 注意:重复元素会被自动过滤
my_set = {1, 2, 2, 3, 4, 4, 5}  # 结果仍然是 {1, 2, 3, 4, 5}

# 尝试使用可变类型(如列表)作为集合元素会导致TypeError
# my_set = {1, 2, [3, 4]}  # TypeError: unhashable type: 'list'

集合操作

  • 并集:使用|union()方法。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
result = set1 | set2  # 或 result = set1.union(set2)
print(result)  # 输出: {1, 2, 3, 4, 5}
  • 交集:使用&intersection()方法。
result = set1 & set2  # 或 result = set1.intersection(set2)
print(result)  # 输出: {3}
  • 差集:使用-difference()方法。
result = set1 - set2  # 或 result = set1.difference(set2)
print(result)  # 输出: {1, 2}
  • 对称差集:使用^symmetric_difference()方法。
result = set1 ^ set2  # 或 result = set1.symmetric_difference(set2)
print(result)  # 输出: {1, 2, 4, 5}

集合的方法

  • add(element): 向集合中添加一个元素。
  • update(other): 用另一个集合中的元素更新当前集合(即求并集后更新当前集合)。
  • remove(element): 从集合中移除一个元素。如果元素不存在,则抛出KeyError
  • discard(element): 从集合中移除一个元素。如果元素不存在,则不执行任何操作,也不抛出异常。
  • pop(): 随机移除集合中的一个元素并返回它。如果集合为空,则抛出KeyError
  • clear(): 移除集合中的所有元素。

集合的遍历

你可以遍历集合中的元素,但由于集合是无序的,所以遍历的顺序可能是不确定的。

for element in my_set:
    print(element)

集合是Python中非常有用的数据结构,特别是在需要执行数学上的集合操作或需要快速检查元素是否存在时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wang151038606

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值