在Python中,集合是一种无序、可变的数据类型,用于存储不重复的元素。Python提供了两种内置的集合类型:set和frozenset。
set(集合):
- set是可变的,意味着可以对其进行增删改操作。
- 通过花括号 {} 或者使用 set() 函数来创建集合。
- 集合中的元素是不可重复的,因此添加重复元素不会引发错误。
- 集合中的元素是无序的,即不支持索引操作。
- 主要用途是快速判断一个元素是否在集合中,因为集合的查询操作的时间复杂度是 O(1)。
- 常用方法包括 add()、remove()、discard()、pop() 等。
- 适用于需要存储不重复元素并进行快速查找的情况,如去重、成员关系检查等。
# 创建集合
my_set = {1, 2, 3, 4, 5}
# 添加元素
my_set.add(6)
# 删除元素
my_set.remove(3)
# 集合中是否包含某元素
print(2 in my_set) # 输出 True
frozenset(冻结集合):
- frozenset是不可变的,一旦创建就不能更改。
- 通过 frozenset() 函数来创建冻结集合。
- 与set相比,它不支持添加、删除等修改操作。
- 冻结集合可用作字典的键,但普通集合不能作为键。
- 适用于需要将集合作为字典键或者在不可变的上下文中使用集合的情况。
# 创建冻结集合
my_frozenset = frozenset([1, 2, 3, 4, 5])
# 尝试添加元素(会引发错误)
# my_frozenset.add(6) # 引发 AttributeError: 'frozenset' object has no attribute 'add'
# 尝试删除元素(会引发错误)
# my_frozenset.remove(3) # 引发 AttributeError: 'frozenset' object has no attribute 'remove'
在实际应用中,根据需求选择合适的集合类型是很重要的。如果需要频繁地对集合进行增删操作,并且不需要将集合作为字典的键,那么可以使用可变的set。如果需要将集合作为字典的键或者希望确保集合的不可变性,可以选择使用不可变的frozenset。
标签:set,Python,元素,add,frozenset,集合,my From: https://blog.csdn.net/zuiyuewentian/article/details/137495974