Python语法之集合

1. 集合基本介绍

在Python语法中,集合(sets)是一种比列表和元组更高效的数据结构,它是一组无序的唯一元素的集合。集合中的元素必须是不可变的,可以是数字、字符串、元组等。Python集合类似于数学中的集合,与数学中的集合一样,Python集合的元素也没有顺序,且不能重复出现。

创建一个空集合可以使用set()函数或直接使用{},但如果想要创建一个空字典则只能使用{}。

#创建一个空集合

empty_set = set()

empty_set2 = {}

print(type(empty_set)) #输出

print(type(empty_set2)) #输出

1.1 集合的基本操作

下面介绍集合的几种基本操作:

1.1.1 添加元素

向集合中添加元素使用add()方法。如果添加的元素已经在集合中,那么它不会重复添加。

my_set = {1, 2, 3}

my_set.add(4)

my_set.add(2)

print(my_set) #输出{1, 2, 3, 4}

1.1.2 移除元素

从集合中移除元素使用remove()或discard()方法。如果要移除的元素不存在于集合中,remove()方法将引发一个KeyError错误,而discard()方法不会。

my_set = {"apple", "banana", "orange", "pear"}

my_set.discard("apple")

my_set.remove("banana")

my_set.discard("grape")

my_set.remove("grape") #KeyError: 'grape',因为该元素不存在于集合中

1.1.3 清空集合

清空集合使用clear()方法。

my_set = {1, 2, 3}

my_set.clear()

print(my_set) #输出set()

1.1.4 集合的长度

获取集合的长度使用len()函数。

my_set = {1, 2, 3, 4, 5}

print(len(my_set)) #输出5

1.2 集合的运算

集合可以像数学中的集合一样进行一些运算,例如并集、交集、差集和对称差。

1.2.1 并集

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

set1 = {1, 2, 3, 4}

set2 = {3, 4, 5, 6}

print(set1.union(set2)) #输出{1, 2, 3, 4, 5, 6}

print(set1 | set2) #输出{1, 2, 3, 4, 5, 6}

1.2.2 交集

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

set1 = {1, 2, 3, 4}

set2 = {3, 4, 5, 6}

print(set1.intersection(set2)) #输出{3, 4}

print(set1 & set2) #输出{3, 4}

1.2.3 差集

获取两个集合的差集使用difference()方法或"-"(减运算符)。注意顺序的不同,结果也会不同。

set1 = {1, 2, 3, 4}

set2 = {3, 4, 5, 6}

print(set1.difference(set2)) #输出{1, 2}

print(set1 - set2) #输出{1, 2}

print(set2 - set1) #输出{5, 6}

1.2.4 对称差

获取两个集合的对称差使用symmetric_difference()方法或"^"(异或运算)。对称差就是两个集合的并集去掉它们的交集。

set1 = {1, 2, 3, 4}

set2 = {3, 4, 5, 6}

print(set1.symmetric_difference(set2)) #输出{1, 2, 5, 6}

print(set1 ^ set2) #输出{1, 2, 5, 6}

2. 不可变集合

Python中还有一种集合叫做不可变集合,即frozenset。不可变集合是一种可散列的集合,因此可以将其作为另一个集合的元素或者字典的键使用。

my_frozenset = frozenset([1, 2, 3])

print(my_frozenset) #输出frozenset({1, 2, 3})

与Python中的集合相比,不可变集合的操作比较有限,不能添加、删除或修改元素。

3. 总结

本文对Python语法中的集合进行了介绍,在实际应用中,集合常用于去重、检查某个元素是否存在、求交集、并集等操作。需要注意的是,Python中的集合元素必须是不可变的,且集合本身是无序的,但是可变集合和不可变集合的差异在于可变集合可以添加、删除或修改元素,而不可变集合则不能。

总之,集合是Python语法中一个十分实用的数据结构,对于编写高效的Python程序具有重要的意义。

后端开发标签