Python快速入门教程5:集合

liftword2个月前 (03-28)技术文章7

一、集合简介

集合(set)是Python中的一种无序且不重复元素的容器类型。它基于哈希表实现,因此查找和插入操作的时间复杂度接近于O(1)。集合非常适合用于成员测试、去重等场景。

创建集合

  • 使用花括号{}(注意:空集合不能用{}表示,要用set())
  • 使用set()构造函数将其他可迭代对象转换为集合
Bash
# 方法1:使用花括号
fruits = {'apple', 'banana', 'orange'}

# 方法2:使用set()构造函数
numbers = set([1, 2, 3, 4, 5])
empty_set = set()  # 创建空集合

二、集合的基本操作

添加元素

  • 使用add()方法添加单个元素
  • 使用update()方法添加多个元素(可以是另一个集合、列表等)
Bash
# 添加单个元素
fruits.add('grape')

# 添加多个元素
fruits.update(['mango', 'pear'])

删除元素

  • 使用remove()方法删除指定元素,如果元素不存在则抛出KeyError
  • 使用discard()方法删除指定元素,如果元素不存在不会报错
  • 使用pop()方法随机删除并返回一个元素(集合是无序的,所以无法确定删除哪个元素)
Bash
# 删除元素
fruits.remove('apple')  # 如果'apple'不存在会抛出KeyError
fruits.discard('banana')  # 即使'banana'不存在也不会报错

# 随机删除一个元素
random_fruit = fruits.pop()
print(random_fruit)

清空集合

使用clear()方法清空集合中的所有元素

Bash
fruits.clear()

三、集合运算

并集(Union)

使用|运算符或union()方法获取两个集合的并集

Bash
set1 = {1, 2, 3}
set2 = {3, 4, 5}

union_set = set1 | set2  # 或者使用 union_set = set1.union(set2)
print(union_set)  # 输出 {1, 2, 3, 4, 5}

交集(Intersection)

使用&运算符或intersection()方法获取两个集合的交集

Bash
intersection_set = set1 & set2  # 或者使用 intersection_set = set1.intersection(set2)
print(intersection_set)  # 输出 {3}

差集(Difference)

使用-运算符或difference()方法获取一个集合相对于另一个集合的差集

Bash
difference_set = set1 - set2  # 或者使用 difference_set = set1.difference(set2)
print(difference_set)  # 输出 {1, 2}

对称差集(Symmetric Difference)

使用^运算符或symmetric_difference()方法获取两个集合的对称差集(即不在两个集合交集中出现的元素)

Bash
sym_diff_set = set1 ^ set2  # 或者使用 sym_diff_set = set1.symmetric_difference(set2)
print(sym_diff_set)  # 输出 {1, 2, 4, 5}

四、集合的常用方法

  • issubset():判断是否为子集
  • issuperset():判断是否为超集
  • isdisjoint():判断两个集合是否有交集
Bash
set_a = {1, 2, 3}
set_b = {1, 2}
set_c = {4, 5}

print(set_b.issubset(set_a))  # 输出 True
print(set_a.issuperset(set_b))  # 输出 True
print(set_a.isdisjoint(set_c))  # 输出 True

五、遍历集合

由于集合是无序的,遍历时元素的顺序不确定。

Bash
for item in fruits:
    print(item)

六、应用场景

集合在实际应用中非常广泛,例如:

  • 去重:从列表中去除重复元素。
  • 成员测试:快速检查某个元素是否存在于集合中。
  • 集合运算:处理数据集之间的交集、并集、差集等操作。
Bash
# 去重示例
items = [1, 2, 2, 3, 4, 4, 5]
unique_items = set(items)
print(unique_items)  # 输出 {1, 2, 3, 4, 5}

相关文章

Python 中的集合

集合是 Python 中的一种内置数据结构,表示唯一项的无序集合。集合对于涉及成员资格测试、消除重复条目以及执行数学集运算(如 union、intersection 和 difference)的操作特...

Python小案例47-集合的操作和方法

Python中的集合是一种无序且不重复的数据结构。它们是可变的,可以添加、删除和修改元素。下面是一些常用的集合操作和方法:创建集合:使用花括号{}来创建一个空集合:my_set = {}使用set()...

一文带您精通Python 集合(Set):8个不可不知的技巧及示例

在 Python 中,集合(Set)与列表(List)、字典(Dict)、元组(Tuple)一起构成了基本的数据结构。集合以其独特的无序性和元素唯一性,在处理数据时具有独特的优势。然而,很多人对集合的...

Python中列表、元组、字典和集合的异同

在Python中,列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)都是内置的数据结构,它们各有特点和用途。下面是它们的异同点:相同点:都是容器类型,可以用来存储多个数...

Python集合详解

前言在上一篇《Python元组与字典用法详解》中,我们介绍了元组和字典的用法,简单回顾一下:元组:创建元组:( )和tuple()函数两种方式字典:创建字典:{ }和dict()函数两种方式访问字典元...