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父线程关闭后子线程不关闭的问题,需要使用一些特定的线程控制技术。一般情况下,这个问题通常是由于子线程没有被正确地终止或释放掉导致的。以下是一些可能的解决方法: 使用日志或调试器来检查线程问题。在父线程关闭时,首先需要确保所有的子线程已经被正确地终止。如果仍有子线程在运行,可能需要使用日志或调试器等工具来查找问题。 使用守护线程。如果在子线程…

    python 2023年5月19日
    00
  • Python之ascii转中文的实现

    概述 在Python中,我们可以使用内置的 chr() 和 ord() 函数来进行字符和ASCII码之间的相互转换。但是,如果我们需要把一堆ASCII码转成相应的中文怎么办呢?接下来,让我们来逐步实现实现这个转换的过程。 获取ASCII码值 首先,我们需要获取每个中文字符的ASCII码值。Python中的 ord() 函数可以帮助我们实现。我们可以使用下面的…

    python 2023年5月31日
    00
  • python pandas分组聚合详细

    下面我将详细讲解“Python Pandas 分组聚合详细”的攻略。 一、背景介绍 在数据分析和处理中,对数据进行分组和聚合是非常常见的技术。Pandas是一款Python数据处理的工具包,它提供了强大的分组和聚合功能,能够让我们轻松地对数据进行分组和聚合处理。接下来,我将详细介绍Pandas分组聚合的操作方法。 二、使用方法 在Pandas中,分组聚合的操…

    python 2023年5月14日
    00
  • 如何在Python中进行自动化测试?

    在Python中进行自动化测试可以使用unittest和pytest这两个常用的测试框架。下面是详细的攻略: 使用unittest框架进行自动化测试 import unittest class TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqual(‘hello…

    python 2023年4月19日
    00
  • Pycharm IDE的安装和使用教程详解

    Pycharm IDE的安装和使用教程详解 Pycharm是什么? Pycharm是一款Python集成开发环境,提供了丰富的开发功能和调试工具,广泛使用于Python开发者中。Pycharm支持Python 2和Python 3版本,并提供了许多插件和第三方工具支持。 安装Pycharm 下载Pycharm安装包 Pycharm官网地址为:https://…

    python 2023年5月19日
    00
  • Python使用random和tertools模块解一些经典概率问题

    我来具体讲解一下Python使用random和tertools模块解一些经典概率问题的完整攻略。 一、背景知识 在解决经典概率问题之前,我们需要掌握几个背景知识: (1)随机变量和概率分布 (2)期望和方差 (3)样本空间和事件 二、使用random模块解决问题 在Python中,可以使用random模块生成随机数。例如,如果想生成一个1到10之间的随机整数…

    python 2023年6月3日
    00
  • 如何用NumPy获得数组的唯一元素

    使用NumPy的unique函数可以获得数组的唯一元素。 首先需要导入NumPy库: import numpy as np 接下来,我们可以使用numpy.unique()函数来获取一个数组的唯一元素。 函数原型 numpy.unique(ar, return_index=False, return_inverse=False, return_counts=…

    python-answer 2023年3月25日
    00
  • 一篇文章带你了解python中的typing模块和类型注解

    一篇文章带你了解 Python 中的 typing 模块和类型注解 在 Python 3.5 中引入的 typing 模块为 Python 带来了静态类型检查的支持。本篇文章将详细解释 typing 模块的使用及类型注解的作用和好处。 1. typing 模块概述 typing 模块提供了用于标记类型的工具。它允许我们将特定类型的变量、函数参数和函数返回值与…

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