python基础之set集合详解

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求质数列表的例子

    以下是“Python求质数列表的例子”的完整攻略。 1. 什么是质数 在数学中,质数是指只能被1和自身整除的正整数。例如,2、3、5、7、11等都是质数,而4、6、8、9等不是质数。 2. 求质数列表的方法 在Python中,我们可以使用循环和判断语句来求质数列表。以下是一个示例演示如何使用循环和判断语求质数列表: # 定义一个空列表,用于存储质数 prim…

    python 2023年5月13日
    00
  • 在Python中使用zlib模块进行数据压缩的教程

    下面是Python使用zlib模块进行数据压缩的详细教程及示例说明: 什么是zlib模块 zlib模块是Python标准库中提供的一种数据压缩库,可以用于对数据进行压缩和解压缩。它基于Zlib库,可用于处理大量数据并提供压缩比较高的压缩算法。 如何安装zlib模块 zlib模块在Python标准库中已经默认安装,因此不需要额外安装。 如何使用zlib模块进行…

    python 2023年6月3日
    00
  • Python 进程之间共享数据(全局变量)的方法

    实现多进程之间的数据共享,可以通过使用共享内存的方式,或者使用第三方库multiprocessing中提供的Manager类型,下面分别进行详细的介绍。 使用共享内存 使用共享内存的方式,需要使用multiprocessing中提供的Value、Array对象。Value用于基本类型的共享内存,而Array用于数组的共享内存。 Value Value用于创建…

    python 2023年5月19日
    00
  • python导入库的具体方法

    通过导入内置、第三方或自定义的Python库,我们可以扩展 Python 的功能并让开发更高效。下面是 Python 导入库的具体方法攻略。 1. 导入内置库 Python 内置了许多常用库,例如os、time和re等。导入内置库只需要使用 import 关键字加上库名即可。 示例代码: import os # 使用os模块的方法 os.chdir(‘/pa…

    python 2023年6月2日
    00
  • Python pygame新手入门基础教程

    首先,讲一下什么是Python pygame。 什么是Python pygame Python pygame是一个基于Python语言的跨平台开源游戏开发库。它提供了一系列的API,开发者可以通过这些API来实现2D游戏或图形应用程序。 安装Python pygame 在使用Python pygame之前,需要先安装Python和pygame。 安装Pyth…

    python 2023年5月20日
    00
  • python爬取代理IP并进行有效的IP测试实现

    Python爬取代理IP并进行有效的IP测试实现 在网络爬虫中,使用代理IP可以有效地提高爬取效率和避免被封IP。本文将详细讲解如何使用Python爬取代理IP并进行有效的IP测试实现。 爬取代理IP 我们可以使用Python的requests库和BeautifulSoup库来爬取代理IP。以下是一个使用Python爬取代理IP的示例: import req…

    python 2023年5月15日
    00
  • python可视化plotly 图例(legend)设置

    Python可视化库plotly是一个功能强大的数据可视化工具,支持各种常见图表类型和交互式可视化。在绘制数据图表时,图例(legend)是一个非常重要的部分,它可以使读者更好地理解数据图表中不同系列的含义。在这里,我们将详细讲解如何在plotly中设置图例。 设置图例(legend) 图例是一种视觉元素,它与绘图联系在一起。在plotly中,图例默认是开启…

    python 2023年5月18日
    00
  • Python基础之函数嵌套知识总结

    Python基础之函数嵌套知识总结 一、什么是函数嵌套 函数嵌套,指的是在一个函数中定义另一个函数。在Python中,函数是一等对象,因此可以将函数作为参数传入其他函数,或者将函数定义在其他函数内部,形成函数嵌套的关系。 二、为什么需要函数嵌套 1. 封装性 将一些功能独立的代码封装成函数,可以提高代码的复用性和可读性。而函数嵌套则可以更细致地划分功能,代码…

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