Python快速入门教程5:集合

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

一、集合简介

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

创建集合

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

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

二、集合的基本操作

添加元素

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

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

删除元素

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

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

清空集合

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

fruits.clear()

三、集合运算

并集(Union)

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

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()方法获取两个集合的交集

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

差集(Difference)

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

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

对称差集(Symmetric Difference)

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

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

四、集合的常用方法

  • issubset():判断是否为子集
  • issuperset():判断是否为超集
  • isdisjoint():判断两个集合是否有交集
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

五、遍历集合

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

for item in fruits:
    print(item)

六、应用场景

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

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

相关文章

简析python中的集合

一、集合1、集合:set,把不同元素组成一起形成集合,是pthon基本的数据类型,是无序且不重复,特点是数据元素唯一、无序且不可变set(可变)frozenset(不可变)元组和字符串也不可变>...

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

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

第27讲 集合(和猫妹学Python)

小朋友们好,大朋友们好!我们今天学习集合(set)的知识,内容如下:什么是集合(set)集合的创建集合的添加和删除集合的交集、并集、差集什么是集合Python中的集合和数学中的集合概念类似,也是用于保...

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

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

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

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