Python集合常用功能

▪ 集合核心特性

  • 无序性:元素存储顺序与添加顺序无关
  • 元素唯一性:自动过滤重复元素
  • 可变性:支持增删操作(frozenset为不可变版本)
  • 哈希约束:元素必须是可哈希对象(不可包含列表等可变类型)

▪ 集合创建方式

# 空集合(必须使用set())
empty_set = set()
# 字面量创建
numbers = {1, 2, 3, 5, 7}
# 从可迭代对象转换
chars = set('hello')  # {'h', 'e', 'l', 'o'}
# 集合推导式
squares = {x**2 for x in range(10)}
# 不可变集合
frozen = frozenset([1, 2, 3])

▪ 元素管理方法

方法

说明

示例

add(e)

添加单个元素

s.add(4)

update(it)

合并可迭代对象

s.update([5,6,7])

remove(e)

移除指定元素(不存在时报错)

s.remove(3)

discard(e)

安全移除元素

s.discard(10)

pop()

随机移除并返回元素

val = s.pop()

clear()

清空集合

s.clear()

▪ 集合运算详解

a = {1,2,3}
b = {3,4,5}
# 并集(包含所有元素)
a | b           # {1,2,3,4,5}
a.union(b)
# 交集(共同元素)
a & b           # {3}
a.intersection(b)
# 差集(a有b无)
a - b           # {1,2}
a.difference(b)
# 对称差集(仅出现一次)
a ^ b           # {1,2,4,5}
a.symmetric_difference(b)

▪ 高级集合操作

# 集合比较
{1,2} <= {1,2,3}  # True (子集检查)
a.issubset(b)
{1,2,3} >= {2,3}  # True (超集检查)
a.issuperset(b)
# 无交集验证
a.isdisjoint({7,8})  # True
# 修改原集合的操作
a.intersection_update(b)  # a变为两者的交集
a.difference_update(b)    # 移除a中属于b的元素

▪ 性能特征对比

操作

时间复杂度

对比列表

元素存在性检查

O(1)

列表为O(n)

添加元素

O(1)

列表append为O(1)

删除元素

O(1)

列表remove为O(n)

集合运算

O(len(s))

列表需嵌套循环

▪ 典型应用场景

快速去重:list(set(duplicate_list))

关系测试:检查共同好友、共同兴趣等

数据筛选:使用集合运算过滤数据

状态跟踪:记录已处理过的元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值