python集合类型 (Set Types)

简介: 【8月更文挑战第3天】

image.png
Python 中的集合(Set Types)是一种无序的、不包含重复元素的数据结构。集合主要用于数学上的集合操作,如并集、交集、差集和对称差集等。Python 提供了两种标准的集合类型:set 和 frozenset。

  1. set
    set 是一个可变的数据类型,意味着你可以添加或删除集合中的元素。创建 set 的方式很简单,只需要将一组元素放在大括号 {} 中,或使用 set() 函数。注意,空的大括号 {} 用来创建空字典,而不是空集合;要创建空集合,必须使用 set()。

示例
python

使用大括号创建集合

my_set = {1, 2, 3, 4, 5}

使用 set() 函数创建集合

another_set = set([1, 2, 3, 4, 5])

空集合的创建

empty_set = set()

添加元素

my_set.add(6)

删除元素

my_set.remove(2) # 如果元素不存在,则抛出 KeyError

或者使用 discard 方法,如果不存在元素,则不抛出异常

my_set.discard(7)

集合的运算

union = my_set | another_set # 并集
intersection = my_set & another_set # 交集
difference = my_set - another_set # 差集
symmetric_difference = my_set ^ another_set # 对称差集

print(union)
print(intersection)
print(difference)
print(symmetric_difference)

  1. frozenset
    frozenset 是一个不可变的数据类型,意味着一旦创建,你就不能添加或删除元素。frozenset 主要用于需要不可变集合的场景,比如作为字典的键或集合的元素。

示例
python

创建一个 frozenset

my_frozenset = frozenset([1, 2, 3, 4, 5])

尝试修改 frozenset 会抛出 TypeError

my_frozenset.add(6) # 这会抛出 TypeError

frozenset 同样支持集合运算

another_frozenset = frozenset([4, 5, 6, 7, 8])
union = my_frozenset | another_frozenset
intersection = my_frozenset & another_frozenset

print(union)
print(intersection)
集合的特点
无序性:集合中的元素是无序的,即集合中的元素没有固定的顺序。
唯一性:集合中的元素是唯一的,即集合中不会出现重复的元素。
集合运算:支持多种集合运算,如并集、交集、差集和对称差集等。
集合类型在 Python 中非常有用,特别是在处理数学上的集合运算或需要快速检查元素是否存在于某个集合中时。

目录
相关文章
|
3月前
|
索引 Python
Python的变量和简单类型
本文介绍了Python中变量命名规则、常用变量类型及字符串操作。变量命名需遵循字母、数字和下划线组合,不能以数字开头且不可与关键字冲突。字符串支持单引号、双引号或三引号定义,涵盖基本输出、转义字符、索引、拼接等操作。此外,还详细解析了字符串方法如`islower()`、`upper()`、`count()`等,帮助理解字符串处理技巧。
75 15
|
2月前
|
Python
Python技术解析:了解数字类型及数据类型转换的方法。
在Python的世界里,数字并不只是简单的数学符号,他们更多的是一种生动有趣的语言,用来表达我们的思维和创意。希望你从这个小小的讲解中学到了有趣的内容,用Python的魔法揭示数字的奥秘。
82 26
|
2月前
|
人工智能 安全 IDE
Python 的类型安全是如何实现的?
本文探讨了 Python 的类型安全实现方式。从 3.5 版本起,Python 引入类型提示(Type Hints),结合静态检查工具(如 mypy)和运行时验证库(如 pydantic),增强类型安全性。类型提示仅用于开发阶段的静态分析,不影响运行时行为,支持渐进式类型化,保留动态语言灵活性。泛型机制进一步提升通用代码的类型安全性。总结而言,Python 的类型系统是动态且可选的,兼顾灵活性与安全性,符合“显式优于隐式”的设计哲学。
|
3月前
|
存储 缓存 安全
Python frozenset 集合详解:不可变集合的终极指南
frozenset是Python中一个常被忽视但极具价值的不可变集合类型。本文深入解析其本质、操作方法与应用场景,揭示其通过不可变性带来的安全性与性能优势。从底层实现到实战案例,涵盖字典键使用、缓存优化及类型注解等高级场景。同时对比性能数据,提供最佳实践指南,并展望Python 3.11+中的优化。掌握frozenset,可为代码带来更强健性与效率,适合多种特定需求场景。
124 5
|
4月前
|
Rust JavaScript 前端开发
[oeasy]python075_什么是_动态类型_静态类型_强类型_弱类型_编译_运行
本文探讨了编程语言中的动态类型与静态类型、强类型与弱类型的概念。通过实例分析,如Python允许变量类型动态变化(如`age`从整型变为字符串),而C语言一旦声明变量类型则不可更改,体现了动态与静态类型的差异。此外,文章还对比了强类型(如Python,不允许隐式类型转换)和弱类型(如JavaScript,支持自动类型转换)的特点。最后总结指出,Python属于动态类型、强类型语言,对初学者友好但需注意类型混淆,并预告下期内容及提供学习资源链接。
118 22
|
4月前
|
Python Windows
[oeasy]python076_int这个词怎么来的_[词根溯源]整数类型_int_integer_touch
本文探讨了“int”一词的起源及其与整数类型的关联。通过词根溯源,揭示“int”来源于“integer”,意为“完整的数”,与零碎的分数相对。同时分析了相关词汇如“tact”(接触)、“touch”(触摸)及衍生词,如“tangential”(切线的)、“intagible”(无形的)和“integral”(完整的、不可或缺的)。文章还结合编程语言特性,解释了Python作为动态类型、强类型语言的特点,并总结了整型变量的概念与意义。最后预告了后续内容,提供了学习资源链接。
103 11
|
4月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
5月前
|
索引 Python
python字符串类型及操作
本文主要讲解字符串类型的表示、操作符、处理函数、处理方法及格式化。内容涵盖字符串的定义、表示方法(单双引号、三引号)、索引与切片、特殊字符转义、常见操作符(如+、*、in等)、处理函数(如len()、str()、chr()等)、处理方法(如.lower()、.split()等)以及格式化方式(如.format())。通过实例代码详细介绍了字符串的各种用法和技巧,帮助读者全面掌握字符串操作。
156 2
python字符串类型及操作
|
4月前
|
存储 C语言 Python
[oeasy]python077_int类型怎么用_整数运算_integer_进制转化_int类
本文主要讲解了Python中`int`类型的应用与特性。首先回顾了`int`词根的溯源,探讨了整型变量的概念及命名规则(如匈牙利命名法)。接着分析了整型变量在内存中的存储位置和地址,并通过`type()`和`id()`函数验证其类型和地址。还介绍了整型变量的运算功能,以及如何通过`int()`函数将字符串转化为整数,支持不同进制间的转换(如二进制转十进制)。此外,文章提及了关键字`del`的使用场景,对比了Python与C语言中`int`的区别,并总结了整型与字符串类型的差异,为后续深入学习奠定基础。
67 1
|
7月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
267 8

推荐镜像

更多