Python基础:集合类型

数据类型与数据结构   2024-04-05 23:38   206   0  

在 Python 中,集合(set)类型是指把多个元素组成一个整体,通过一系列操作来对其中的元素进行处理的特殊数据类型。集合是一种无序的集合类型,其中包含了唯一的元素。集合使用大括号 {} 进行声明,并使用逗号分隔每个元素。

1 创建集合

在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。

2 访问集合

由于集合是无序的,因此不能像列表或元组那样按照索引进行访问。可以使用 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})

上述代码将依次输出集合中的每个元素。

3 集合的常见操作

1) 添加元素

可以使用 add() 方法向集合中添加新元素,例如:

# 添加元素
my_set.add(10)
print(my_set)

输出结果:

{1, 2, 3, 10, 'hello', (4, 5, 6), frozenset({8, 9, 7})}

上述代码将向集合中添加一个新元素 6。

2) 删除元素

可以使用 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() 方法不会抛出异常。

3) 集合的运算

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}

上述代码将分别计算两个集合的并集、交集、差集和对称差集,并打印到控制台。


感谢关注,将会不断更新并提供最新的内容。


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。