1. 什么是集合Set
在Python中,set是一个可变的、无序的元素集合,其中每个元素都是唯一的,用于高效地去除重复元素。
set是Python的内置数据类型之一,可以用大括号{},或者set()创建。与列表和元组不同,集合是无序的,这意味着集合中的元素没有特定的顺序。诸如列表和元组等有序数据类型是可以进行切片的,但集合不行。
集合可以进行各种数学操作,例如交集,联合差集等,并且新的集合可以基于这些操作。集合还可以将元素添加到其中,从其中删除元素,检查指定元素是否包含在集合中,并对集合中的元素进行迭代。
2. 集合Set的使用场景
2.1 去重复元素
集合最常见的用途是去除一个序列中的重复元素。集合是一个无序的唯一元素列表,进而可以解决这个问题。
# 列表去重复元素
lst = [1, 2, 1, 2, 3, 4, 4, 5]
lst = list(set(lst))
print(lst) # [1, 2, 3, 4, 5]
以上代码中,使用集合将列表lst中的重复元素去除,然后通过list()函数转换回列表。
2.2 集合的交集、并集、差集
集合还可以进行各种数学操作,例如交集、并集、差集等,并且新的集合可以基于这些操作。
交集:两个集合的交集是指既属于集合A又属于集合B的元素。交集可以使用 & 符号或intersection()函数获得。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7}
print(set1 & set2) # {4, 5}
print(set1.intersection(set2)) # {4, 5}
并集:两个集合的并集是指属于集合 A 或者属于集合 B(或者同时属于集合 A 和 B)的元素。并集可以使用 | 符号或union()函数获得:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7}
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7}
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6, 7}
差集:两个集合的差集是指其中一个集合独有的元素。差集可以使用 - 符号或者difference()函数获得:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7}
print(set1 - set2) # {1, 2, 3}
print(set1.difference(set2)) # {1, 2, 3}
2.3 将列表转换为集合
集合还可以将元素从列表中添加到其中,并且检查指定元素是否包含在集合中。将列表转换为集合并不会执行去重操作,但由于集合的唯一性,最终结果将是具有唯一性的元素集。
lst = [1, 2, 3, 4, 5, 3, 4, 6]
my_set = set(lst)
print(my_set) # {1, 2, 3, 4, 5, 6}
2.4 检查元素是否在集合当中
检查元素是否在集合当中通常是集合的一个常见特性。可以使用in关键字,或者使用集合自带的方法实现这一功能。
my_set = {1, 2, 3, 4, 5}
if 3 in my_set:
print('3在集合中')
else:
print('3不在集合中')
3. 总结
总之,集合是一个非常有用的数据结构,在编写Python代码时常常被使用。集合在去除重复信息方面特别有用,因此可以被用于处理信息和结构敏感的任务,或者从输入数据中生成有趣的结构。