python基础之集合

1. 集合概述

在Python中,集合(set)是一种无序的、不重复的数据类型。集合本质上是由一组不重复的元素组成,可以进行交集、并集等操作。

#创建集合

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

set2 = set([3,4,5,6,7])

#输出集合

print(set1) # {1,2,3,4,5}

print(set2) # {3,4,5,6,7}

#交集

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

#并集

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

2. 集合特性

2.1 无序性

集合中的元素是无序的,因此我们无法通过下标访问集合中的某个元素。

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

print(set1[0]) # TypeError: 'set' object does not support indexing

2.2 不重复性

集合中的元素是不重复的,因此如果我们试图添加一个已经存在的元素到集合中,该元素不会被添加到集合中。

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

set1.add(2)

print(set1) # {1,2,3,4,5}

2.3 可变性

集合是可变的,因此我们可以向集合中添加元素、删除元素。

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

set1.add(6)

print(set1) # {1,2,3,4,5,6}

set1.discard(2)

print(set1) # {1,3,4,5,6}

3. 集合操作方法

3.1 添加元素

向集合中添加元素可以使用add()方法。

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

set1.add(6)

print(set1) # {1,2,3,4,5,6}

3.2 删除元素

从集合中删除元素可以使用discard()方法,该方法会将元素从集合中删除。如果该元素不存在于集合中,该方法不会报错。

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

set1.discard(2)

print(set1) # {1,3,4,5}

3.3 求交集

求两个集合的交集可以使用&符号或intersection()方法。

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

set2 = {3,4,5,6,7}

#使用&符号

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

#使用intersection()方法

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

3.4 求并集

求两个集合的并集可以使用|符号或union()方法。

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

set2 = {3,4,5,6,7}

#使用|符号

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

#使用union()方法

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

3.5 求差集

求两个集合的差集可以使用-符号或difference()方法。注意,差集是指只属于第一个集合而不属于第二个集合的元素。

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

set2 = {3,4,5,6,7}

#使用-符号

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

#使用difference()方法

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

4. 实战案例

下面是一个使用集合进行去重的例子,该例子可以去除一个列表中的重复元素。

#定义一个列表

lst = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]

#将列表转换为集合,自动去重

s = set(lst)

#将集合转换为列表

lst2 = list(s)

print(lst2) # [1,2,3,4,5]

使用集合进行去重可以大大提高运行效率,特别是在处理大量数据的情况下。由于集合是由哈希表实现的,因此判断一个元素是否在集合中时,时间复杂度只有O(1)。

后端开发标签