Python中的集合一起来学习一下
1. 什么是集合
集合(set)是Python中的一种数据类型,和列表、元组、字典等一样是常用的数据结构之一。与列表和元组不同,集合中的元素没有顺序,而且集合中的元素是不重复的。
2. 集合的创建
我们可以使用花括号 {}
或者使用 set()
创建集合,基本语法如下:
# 使用花括号创建集合
>>> my_set = {1, 2, 3}
>>> print(my_set)
{1, 2, 3}
# 使用set()函数创建集合
>>> my_set = set([1, 2, 3])
>>> print(my_set)
{1, 2, 3}
注意,使用花括号定义空集合会创建一个空字典,所以需要使用set()
函数创建空集合。
>>> my_set = {} # 这是错误的定义方式,这里定义了一个字典
>>> print(type(my_set))
<class 'dict'>
>>> my_set = set() # 这是一个空集合的正确定义方式
>>> print(type(my_set))
<class 'set'>
3. 集合的操作
3.1 访问集合中的元素
集合中的元素是没有顺序的,所以不能使用索引访问元素,但是可以使用for
循环和in
关键字来遍历集合。
>>> my_set = {1, 2, 3, 4}
>>> for x in my_set:
print(x)
1
2
3
4
>>> if 1 in my_set:
print("1 is in my_set")
1 is in my_set
3.2 添加元素到集合中
可以使用add()
和update()
方法向集合中添加元素。
>>> my_set = {1, 2, 3}
>>> my_set.add(4)
>>> print(my_set)
{1, 2, 3, 4}
>>> my_set.update([5, 6])
>>> print(my_set)
{1, 2, 3, 4, 5, 6}
3.3 从集合中移除元素
可以使用remove()
和discard()
方法从集合中移除元素。
>>> my_set = {1, 2, 3, 4, 5}
>>> my_set.remove(3)
>>> print(my_set)
{1, 2, 4, 5}
>>> my_set.discard(5)
>>> print(my_set)
{1, 2, 4}
3.4 集合的运算
集合的常用运算包括并(union()
)、交(intersection()
)和差(difference()
)等。
>>> set1 = {1, 2, 3}
>>> set2 = {2, 3, 4}
>>> print(set1.union(set2)) # 集合的并
{1, 2, 3, 4}
>>> print(set1.intersection(set2)) # 集合的交
{2, 3}
>>> print(set1.difference(set2)) # 集合1对集合2的差
{1}
4. 示例说明
4.1 从列表生成一个唯一的元素列表
列表中的元素可以重复,如果我们想要一个元素唯一的列表,可以使用集合来实现。
>>> my_list = [1, 2, 3, 3, 4, 5, 5]
>>> unique_list = set(my_list)
>>> print(unique_list)
{1, 2, 3, 4, 5}
4.2 快速判断一个字符串中是否有重复的字符
我们可以使用集合来判断一个字符串中是否有重复的字符,由于集合中的元素是不重复的,所以如果一个字符串中的字符被转化成集合后,和原来的字符串长度一样,那么这个字符串中就没有重复的字符。
>>> my_str = "hello world"
>>> if len(my_str) == len(set(my_str)):
print("my_str has no duplicate characters")
my_str has no duplicate characters
综上所述,集合是Python中强大的工具之一,掌握集合的使用可以帮助我们更好地完成数据处理任务。