Python中的集合一起来学习一下

  • Post category:Python

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中强大的工具之一,掌握集合的使用可以帮助我们更好地完成数据处理任务。