Skip to content
编程开物
编程开物

一段代码,一段Prompt,一物成型。 探索编程、AI应用、架构设计与产品设计,分享工程实践,记录技术学习、工作总结与产品创造。

  • 首页
  • 编程基础
  • 数据与AI
    • 数据工程
    • AI基础理论
    • AI实践应用
  • 系统架构
    • 传统应用架构设计
    • AI应用架构设计
  • 项目管理
  • 产品设计
  • 技术教程
  • 行业动态
  • 编程笔记
  • 实用技巧
  • 关于我
编程开物

一段代码,一段Prompt,一物成型。 探索编程、AI应用、架构设计与产品设计,分享工程实践,记录技术学习、工作总结与产品创造。

《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: 945
编程笔记 Python SetPython集合

文章导航

Previous post
Next post

发表回复 取消回复

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

站内搜索

微信公众号

广告赞助

近期文章

  • 斯坦福 STORM 学习法:用 AI 深度研究一个主题,构建自己的知识体系
  • 如何使用 Claude 将任何知识的学习速度提升 10 倍【译】
  • Excel 根据数值正负自动设置文字颜色:正数红色、负数绿色
  • 2026 年主流跨端开发框架:Flutter、React Native、KMP 怎么选?
  • 2026 年企业级编程技术栈趋势简报
  • 使用 Jev 构建 Harness [译]
  • 2026年FDE(前沿部署工程师)为什么成了香饽饽?
  • 第 7 章 Tool System:给 AI 装上”手和脚”
  • 第 6 章 Context Engineering:Agent 的”工作内存”
  • 第 5 章 主流 AI Agent 架构模式

近期评论

  • 《AI Agent 架构设计与工程实践指南》——从 LLM、Agent、Harness 到 Mini Claude Code - 编程开物 发表在《第 3 章 AI Agent Loop:现代 AI Agent 背后的核心架构》
  • 《AI Agent 架构设计与工程实践指南》——从 LLM、Agent、Harness 到 Mini Claude Code - 编程开物 发表在《第 4 章 Agent Harness是什么?》
  • 第 4 章 Agent Harness是什么? - 编程开物 发表在《《AI Agent 架构设计与工程实践指南》——从 LLM、Agent、Harness 到 Mini Claude Code》
  • 《AI Agent 架构设计与工程实践指南》——从 LLM、Agent、Harness 到 Mini Claude Code - 编程开物 发表在《第 2 章 LLM Application 的基本架构》
  • 《AI Agent 架构设计与工程实践指南》——从 LLM、Agent、Harness 到 Mini Claude Code - 编程开物 发表在《第 1 章 重新认识 AI Agent》

归档

  • 2026 年 10 月 (2)
  • 2026 年 9 月 (14)
  • 2025 年 8 月 (1)
  • 2025 年 7 月 (1)
  • 2025 年 6 月 (10)
  • 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项目管理 (2)
  • 实用技巧 (3)
  • 技术教程 (8)
  • 数据与AI (12)
    • AI基础理论 (1)
    • AI实践应用 (2)
    • 数据工程 (3)
  • 架构设计 (13)
    • AI应用架构设计 (8)
    • 传统应用架构设计 (2)
  • 编程基础 (2)
  • 编程笔记 (88)
  • 行业动态 (19)
©2026 编程开物 | WordPress Theme by SuperbThemes | 沪ICP备17019044号-3