python基础之set集合详解

yizhihongxing

Python基础之set集合详解

Set是Python的一种基本数据类型,与列表(List)、元祖(Tuple)、字典(Dictionary)一样,它是一种可迭代的数据集合。其中的元素没有顺序,也没有重复的值,这些元素必须是可哈希的。

创建集合

可以使用以下方式来创建一个集合:

# 创建一个空集合
empty_set = set()

# 创建一个非空的集合
fruit_set = {"apple", "banana", "orange"}

如果要创建一个空集合,必须使用set()方法,因为使用{}创建的是空字典。

添加元素

使用add()方法可以向集合中添加元素。如果添加的元素已经在集合中,那么操作不会产生任何影响。

fruit_set = {"apple", "banana", "orange"}

# 向集合中添加元素
fruit_set.add("pear")

# 尝试向集合中添加已有元素
fruit_set.add("apple")

print(fruit_set)    # {'banana', 'orange', 'apple', 'pear'}

删除元素

使用remove()方法可以从集合中删除元素。如果元素不存在,将会引发一个KeyError异常。

fruit_set = {"apple", "banana", "orange"}

# 从集合中删除元素
fruit_set.remove("banana")

print(fruit_set)    # {'orange', 'apple'}

集合运算

Set支持多种集合运算。常用的运算符包括:

  • 并集运算(|):返回两个集合的所有元素。
  • 交集运算(&):返回两个集合中都存在的元素。
  • 差集运算(-):返回第一个集合中存在,而第二个集合中不存在的元素。
  • 对称差运算(^):返回两个集合中仅存在于其中一个集合中的元素。
fruit_set1 = {"apple", "banana", "orange"}
fruit_set2 = {"orange", "pear", "grape"}

# 并集运算
union_set = fruit_set1 | fruit_set2
print(union_set)   # {'banana', 'orange', 'pear', 'grape', 'apple'}

# 交集运算
intersection_set = fruit_set1 & fruit_set2
print(intersection_set)   # {'orange'}

# 差集运算
difference_set = fruit_set1 - fruit_set2
print(difference_set)   # {'banana', 'apple'}

# 对称差运算
symmetric_difference_set = fruit_set1 ^ fruit_set2
print(symmetric_difference_set)   # {'pear', 'banana', 'grape', 'apple'}

集合方法

Set还提供了一些方便的方法,可以用于集合的操作。常用的方法包括:

  • len():返回集合中元素的数量。
  • clear():从集合中删除所有元素。
  • copy():复制一个集合。
  • issubset():判断当前集合是否为另一个集合的子集。
  • issuperset():判断当前集合是否为另一个集合的超集。
  • union():返回两个集合的并集。
  • intersection():返回两个集合的交集。
  • difference():返回两个集合的差集。
  • symmetric_difference():返回两个集合的对称差集。
fruit_set = {"apple", "banana", "orange"}

# 获取集合中元素的数量
fruit_count = len(fruit_set)
print(fruit_count)    # 3

# 复制一个集合
fruit_copy = fruit_set.copy()
print(fruit_copy)    # {'banana', 'orange', 'apple'}

# 判断是否为子集
is_subset = {"apple", "banana"}.issubset(fruit_set)
print(is_subset)    # True

# 判断是否为超集
is_superset = fruit_set.issuperset({"apple", "banana"})
print(is_superset)    # True

# 返回两个集合的并集
fruit_set2 = {"orange", "pear", "grape"}
union_set = fruit_set.union(fruit_set2)
print(union_set)    # {'banana', 'orange', 'pear', 'grape', 'apple'}

# 返回两个集合的交集
intersection_set = fruit_set.intersection(fruit_set2)
print(intersection_set)    # {'orange'}

# 返回两个集合的差集
difference_set = fruit_set.difference(fruit_set2)
print(difference_set)    # {'banana', 'apple'}

# 返回两个集合的对称差集
symmetric_difference_set = fruit_set.symmetric_difference(fruit_set2)
print(symmetric_difference_set)    # {'banana', 'pear', 'grape', 'apple'}

示例说明

示例1: 从列表中去除重复元素

可以将一个列表转换成一个集合,从而去除其中的重复元素。例如:

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

# 使用 set() 方法将列表转换为集合,自动删除重复元素
num_set = set(num_list)

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

示例2: 求两个列表的并集

可以将两个列表转换成集合,再使用并集运算符(|),求两个列表的并集。例如:

list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]

# 将两个列表转换成集合,求并集
set1 = set(list1)
set2 = set(list2)
union_set = set1 | set2

print(union_set)    # {1, 2, 3, 4, 5, 6, 7, 8}

以上就是Python基础之set集合的详细攻略,希望对您的学习有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python基础之set集合详解 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python日志处理模块logging用法解析

    Python日志处理模块logging用法解析 在Python中,logging模块是一个非常有用的工具,可以帮助我们记录程序运行时的信息,以便于调试和排错。本文将详细讲解Python日志处理模块logging的用法和解析。 logging模块的基本用法 logging模块提供了多种日志级别,包括DEBUG、INFO、WARNING、ERROR、CRITIC…

    python 2023年5月15日
    00
  • Python命名空间与作用域深入全面详解

    Python命名空间与作用域深入全面详解攻略 Python是一门解释型语言,在执行代码时需要进行解释。在语言中,每一个对象都有一个命名空间。而在程序代码中,每一个名字都属于对应的命名空间。Python中的变量作用域遵循LEGB规则,即从局部作用域开始寻找变量,一直找到全局作用域,如果还未找到,就会报错。 Python命名空间详解 命名空间是Python中的一…

    python 2023年5月13日
    00
  • python爬虫之requests库的使用详解

    Python爬虫之Requests库的使用详解 什么是Requests库 Requests是一款Python第三方库,用于发送HTTP请求。它十分简单易用,是Python中最常见的HTTP客户端库之一。 Requests库安装方法 使用pip安装Requests库: pip install requests 安装成功后,导入Requests库: import…

    python 2023年5月14日
    00
  • 在 Python 中使用变量创建文件名的方法

    在Python中,我们可以使用变量来动态地创建文件名。下面是具体的两条示例说明,带你一步步操作: 1. 使用字符串拼接变量创建文件名 代码示例: name = ‘John’ age = 20 file_name = name + ‘_’ + str(age) + ‘.txt’ print(file_name) 这段代码中,我们创建了两个变量name和age,…

    python 2023年6月5日
    00
  • Python中将两个或多个list合成一个list的方法小结

    以下是“Python中将两个或多个list合成一个list的方法小结”的完整攻略。 1. 使用”+”运算符合并列表 在Python中,可以使用”+”运符将个或多个列表合并成列表。 list1 = [1,2, 3] list2 = [4, 5, 6] new = list1 + list2 print(new_list) # 输出[1, 2, 3, 4, 5,…

    python 2023年5月13日
    00
  • Python中的连接符(+、+=)示例详解

    Python中的连接符(+、+=)示例详解 在Python中,连接符(+、+=)通常用来连接字符串或者列表。下面将分别介绍它们的用法和示例。 1. 连接字符串 使用连接符(+、+=)可以将两个或多个字符串连接起来。其中,+用于简单连接,+=用于原地修改。 下面是简单连接字符串的示例: str1 = "Hello" str2 = &quot…

    python 2023年5月14日
    00
  • Python多线程thread及模块使用实例

    下面就给您详细讲解“Python多线程thread及模块使用实例”相关知识。 1. Python多线程thread的介绍 Python提供了多线程的支持,它是通过thread模块实现的。由于GIL(全局解释器锁)的问题,Python的多线程无法实现真正的并发,但是在IO密集型的任务中,多线程还是有着很大的优势的。下面我们来看一下Python多线程的一些基本用…

    python 2023年5月18日
    00
  • Python学习之yaml文件的读取详解

    下面我将详细讲解“Python学习之yaml文件的读取详解”的完整攻略。 1. YAML文件是什么? 在开始讲解如何读取YAML文件之前,需要先了解一下什么是YAML文件。 YAML(YAML Ain’t Markup Language)是一种用来序列化数据的格式,与JSON、XML等常见的数据交换格式一样,具有良好的可读性、易于理解的特点。它在数据交换、系…

    python 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部