在 Python 中,集合(set)类型是指把多个元素组成一个整体,通过一系列操作来对其中的元素进行处理的特殊数据类型。集合是一种无序的集合类型,其中包含了唯一的元素。集合使用大括号 {} 进行声明,并使用逗号分隔每个元素。
在Python中创建集合非常简单,只需要将元素放在一对大括号 {} 中即可。下面是一个创建集合的示例代码:
# 创建集合
my_set = {1, 2, 3, "hello", (4, 5, 6), frozenset({7, 8, 9})}
print(my_set)
输出结果:
{1, 2, 3, 'hello', (4, 5, 6), frozenset({8, 9, 7})}
上述代码将创建一个包含五个元素的集合对象,并使用 print() 函数将其打印到控制台。
注意,集合中不能包含可变对象(如列表),但可以包含不可变对象(如元组、字符串等)。同时,Python 还提供了不可变集合类型 frozenset。
由于集合是无序的,因此不能像列表或元组那样按照索引进行访问。可以使用 in 关键字来判断元素是否存在于集合中,例如:
# 判断元素是否存在于集合中
if 3 in my_set:
print('元素 3 存在于集合中')
输出结果:
元素 3 存在于集合中
此外,还可以使用 for 循环遍历集合中的所有元素,例如:
# 遍历集合
for item in my_set:
print(item)
输出结果:
1
2
3
hello
(4, 5, 6)
frozenset({8, 9, 7})
上述代码将依次输出集合中的每个元素。
可以使用 add() 方法向集合中添加新元素,例如:
# 添加元素
my_set.add(10)
print(my_set)
输出结果:
{1, 2, 3, 10, 'hello', (4, 5, 6), frozenset({8, 9, 7})}
上述代码将向集合中添加一个新元素 6。
可以使用 remove() 或 discard() 方法从集合中删除指定的元素,例如:
# 删除元素
my_set.remove(2) # 删除元素 2
my_set.discard((4, 5, 6)) # 删除元素 (4, 5, 6)
print(my_set)
输出结果:
{1, 3, 10, 'hello', frozenset({8, 9, 7})}
上述代码将分别从集合中删除元素 2 和 (4, 5, 6)。
注意:如果要删除的元素在集合中不存在,remove() 方法将引发 KeyError 异常,而 discard() 方法不会抛出异常。
Python中的集合类型支持以下运算:
并集运算:使用 | 运算符或 union() 方法
交集运算:使用 & 运算符或 intersection() 方法
差集运算:使用 - 运算符或 difference() 方法
对称差集运算:使用 ^ 运算符或 symmetric_difference() 方法
例如:
# 集合的运算
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
# 并集运算
print(set1 | set2) # {1, 2, 3, 4, 5, 6}
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6}
# 交集运算
print(set1 & set2) # {3, 4}
print(set1.intersection(set2)) # {3, 4}
# 差集运算
print(set1 - set2) # {1, 2}
print(set1.difference(set2)) # {1, 2}
print(set2 - set1) # {5, 6}
print(set2.difference(set1)) # {5, 6}
# 对称差集运算
print(set1 ^ set2) # {1, 2, 5, 6}
print(set1.symmetric_difference(set2)) # {1, 2, 5, 6}
输出结果:
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}
{3, 4}
{3, 4}
{1, 2}
{1, 2}
{5, 6}
{5, 6}
{1, 2, 5, 6}
{1, 2, 5, 6}
上述代码将分别计算两个集合的并集、交集、差集和对称差集,并打印到控制台。
感谢关注,将会不断更新并提供最新的内容。