Skip to content
编码者
编码者

关注IT咨询、IT规划、数字化转型、架构设计、项目管理、软件开发和交付

  • 首页
  • IT咨询
    • IT咨询框架
    • IT项目管理
  • 人工智能
    • AI概念和理论
    • 数据科学
    • 人工智能应用
  • 企业架构
    • 应用架构设计
  • 程序员基础
    • 计算机网络
  • 编程技术栈
    • C语言编程
    • Python编程
    • iOS App开发
    • .NET技术栈
    • WordPress
    • Unity游戏开发
    • UE虚幻引擎
    • 技术问题记录
  • 工具Tips
  • 行业动态
  • 关于我
编码者

关注IT咨询、IT规划、数字化转型、架构设计、项目管理、软件开发和交付

《Python编程》012 – Python Set:掌握独特数据结构的威力

编码者, 2023年8月7日2023年8月7日

Python提供了各种内置数据结构,用于存储和操作数据。其中,最有用且强大的数据结构之一就是集合(Set)。集合是一个无序的、包含唯一元素的集合,可以用于执行多个集合上的并、交和差等各种操作。

1. 创建集合

你可以通过用花括号{}将逗号分隔的值列表括起来,或使用set()构造函数来创建集合。例如:

fruits = {'apple', 'banana', 'orange'}
vegetables = set(['carrot', 'broccoli', 'spinach'])

在这个例子中,fruits和vegetables都是包含三个元素的集合。

注意,集合只能包含不可变对象,如字符串、数字和元组。不能将可变对象(如列表和字典)添加到集合中。

2. 访问集合中的元素

由于集合是无序集合,因此无法使用索引访问其元素。但是,可以使用in关键字检查集合中是否存在某个元素。例如:

if 'apple' in fruits:
    print('存在')
else:
    print('不存在')

在这个例子中,代码检查fruits集合中是否存在字符串'apple'。由于存在,所以输出为”存在”。

3. 修改集合

集合是可变的,意味着你可以向集合中添加或删除元素。要向集合添加元素,可以使用add()方法。例如:

fruits.add('pear')

在这个例子中,add()方法将字符串'pear'添加到fruits集合中。

要从集合中删除元素,可以使用remove()方法。例如:

fruits.remove('banana')

在这个例子中,remove()方法从fruits集合中删除字符串'banana'。

如果尝试删除集合中不存在的元素,Python会引发KeyError异常。为了避免这种情况,可以使用discard()方法。如果元素存在于集合中,它将被删除;如果元素不存在,则不做任何操作。例如:

fruits.discard('banana')

在这个例子中,如果fruits集合中存在字符串'banana',discard()方法将其删除;否则不做任何操作。

4. 集合操作

集合可以用于对多个集合执行并、交和差等各种操作。这些操作可以使用集合方法或运算符来执行。

4.1 并集

两个集合的并集是一个包含这两个集合中所有元素的集合,且不包含重复元素。可以使用union()方法或|运算符执行并集操作。例如:

fruits = {'apple', 'banana', 'orange'}
berries = {'blueberry', 'raspberry', 'strawberry'}

all_fruits = fruits.union(berries)
# 或者
all_fruits = fruits | berries

在这个例子中,union()方法和|运算符都返回一个包含fruits和berries集合中所有元素的集合,且没有重复。

4.2 交集

两个集合的交集是一个只包含同时存在于两个集合中的元素的集合。可以使用intersection()方法或&运算符执行交集操作。例如:

apples = {'red', 'green', 'yellow'}
all_fruits = {'apple', 'banana', 'orange', 'blueberry', 'raspberry', 'strawberry'}

common_fruits = apples.intersection(all_fruits)
# 或者
common_fruits = apples & all_fruits

在这个例子中,intersection()方法和&运算符都返回一个只包含apples和all_fruits集合中共同的元素的集合。

4.3 差集

两个集合的差集是一个包含存在于一个集合中但不存在于另一个集合中的元素的集合。可以使用difference()方法或-运算符执行差集操作。例如:

fruits = {'apple', 'banana', 'orange'}
all_fruits = {'apple', 'banana', 'orange', 'blueberry', 'raspberry', 'strawberry'}

other_fruits = all_fruits.difference(fruits)
# 或者
other_fruits = all_fruits - fruits

在这个例子中,difference()方法和-运算符都返回一个只包含存在于all_fruits集合中但不存在于fruits集合中的元素的集合。

4.4 对称差集

两个集合的对称差集是一个包含存在于一个集合或另一个集合中,但不同时存在于两个集合中的元素的集合。可以使用symmetric_difference()方法或^运算符执行对称差集操作。例如:

set1 = {1, 2, 3}
set2 = {3, 4, 5}

symmetric_diff = set1.symmetric_difference(set2)
# 或者
symmetric_diff = set1 ^ set2

在这个例子中,symmetric_difference()方法和^运算符都返回一个包含存在于set1或set2中,但不同时存在于两个集合中的元素的集合。

结论

通过使用集合,你可以高效地存储和操作独特的元素集合。集合提供了丰富的操作方法,包括并、交、差和对称差等操作,使你能够轻松处理集合数据。掌握了Python中集合的使用,你将能够更好地处理数据,并编写出更简洁、高效的代码。

英文链接:Python Data Structure: Set

Post Views: 520
Python编程 Python SetPython集合

文章导航

Previous post
Next post

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

近期文章

  • 机器学习三要素:模型假设、评价函数与优化算法如何协同工作
  • 如何导出宽表格Excel为PDF且不裁剪列
  • 人工智能发展简史:从图灵到ChatGPT的里程碑之路
  • AI Agents介绍:定义、原理、案例与未来展望
  • 人工智能(AI)初学者学习路线图(2025年)
  • 《Unity入门实战》0008 – 使用 Unity 的 [SerializeField] 实现封装与 Inspector 面板访问
  • 《Unity入门实战》0007 – 第一个 Unity C# 脚本:控制 2D 小球移动与跳跃
  • 2025年AI行业趋势综述
  • 《Unity入门实战》0006 – 第一个 C# 示例代码,演示如何捕获输入
  • 《Unity入门实战》0005 – 创建 C# 脚本

近期评论

    归档

    • 2025 年 6 月 (7)
    • 2025 年 5 月 (10)
    • 2025 年 4 月 (5)
    • 2025 年 2 月 (1)
    • 2024 年 12 月 (4)
    • 2024 年 11 月 (7)
    • 2024 年 9 月 (1)
    • 2024 年 8 月 (4)
    • 2024 年 7 月 (1)
    • 2024 年 2 月 (1)
    • 2023 年 12 月 (3)
    • 2023 年 11 月 (6)
    • 2023 年 10 月 (4)
    • 2023 年 9 月 (2)
    • 2023 年 8 月 (38)
    • 2022 年 2 月 (1)
    • 2022 年 1 月 (13)
    • 2021 年 1 月 (1)
    • 2020 年 10 月 (1)
    • 2020 年 1 月 (1)
    • 2014 年 7 月 (2)

    分类

    • IT咨询 (7)
      • IT咨询框架 (3)
      • IT项目管理 (2)
    • 人工智能 (10)
      • AI概念和理论 (1)
      • 数据科学 (3)
    • 企业架构 (3)
    • 工具Tips (2)
    • 生活笔记 (24)
    • 程序员基础 (3)
      • 计算机网络 (2)
    • 编程笔记 (56)
      • .NET技术栈 (3)
      • C语言编程 (1)
      • Golang技术栈 (1)
      • iOS App开发 (1)
      • Python编程 (18)
      • UE虚幻引擎 (1)
      • Unity游戏开发 (9)
      • Wordpress (5)
      • 工具 (1)
    • 行业动态 (14)
    ©2025 编码者 | WordPress Theme by SuperbThemes | 沪ICP备17019044号-3