我不太了解python中集合数据类型
时间: 2023-09-12 20:06:27 浏览: 111
在 Python 中,集合是一种无序、不重复的数据结构。Python 提供了两种内置的集合类型:set 和 frozenset。
set 是一个可变集合,它可以添加、删除和修改元素。set 的元素必须是可哈希的,因此只能包含不可变类型的元素,例如数字、字符串和元组等。set 的创建方式有两种:
1. 使用 {} 或 set() 函数创建,例如:
```
# 使用 {} 创建 set
s = {1, 2, 3}
# 使用 set() 函数创建 set
s = set([1, 2, 3])
```
2. 使用推导式创建,例如:
```
# 使用列表推导式创建 set
s = {x for x in range(1, 4)}
```
frozenset 是一个不可变集合,它不能添加、删除和修改元素。frozenset 的元素也必须是可哈希的。frozenset 的创建方式与 set 相同,只是使用 frozenset() 函数来创建。
以下是一些常用的集合操作:
- 添加元素:使用 add() 方法可以向 set 中添加元素。
- 删除元素:使用 remove() 或 discard() 方法可以从 set 中删除元素。remove() 方法在删除不存在的元素时会抛出 KeyError 异常,而 discard() 方法则不会。
- 求交集、并集、差集:使用 &、|、- 运算符可以求 set 的交集、并集、差集。
- 判断是否为子集或超集:使用 <=、>= 运算符可以判断一个 set 是否为另一个 set 的子集或超集。
- 判断是否有交集:使用 isdisjoint() 方法可以判断两个 set 是否有交集。
例如:
```
s1 = {1, 2, 3}
s2 = {2, 3, 4}
# 求交集
print(s1 & s2) # 输出 {2, 3}
# 求并集
print(s1 | s2) # 输出 {1, 2, 3, 4}
# 求差集
print(s1 - s2) # 输出 {1}
# 判断是否为子集
print(s1 <= s2) # 输出 False
# 判断是否有交集
print(s1.isdisjoint(s2)) # 输出 False
```
阅读全文