船山网站建设,app软件下载安装官方免费下载,定期报告系统下载官网,沈阳网红餐厅目录
集合#xff08;Set#xff09;
基本概念
基本特性
基本操作
集合运算
成员测试
高级操作
集合推导式
总结 集合#xff08;Set#xff09;
Python集合#xff08;Set#xff09;是Python语言中一个非常实用且强大的数据结构#xff0c;它用于存储多个不…目录
集合Set
基本概念
基本特性
基本操作
集合运算
成员测试
高级操作
集合推导式
总结 集合Set
Python集合Set是Python语言中一个非常实用且强大的数据结构它用于存储多个不重复的元素。集合中的元素可以是任何不可变类型的数据如整数、浮点数、字符串等但不能是可变数据类型如列表或字典。集合提供了一种高效执行集合操作如并集、交集、差集的方式这对于数据处理和分析任务尤为有用。
基本概念
在Python中集合用set关键字来创建可以通过花括号{}直接定义或者使用内置函数set()将其他可迭代对象转换为集合。集合中的元素自动去重这意味着每个元素在集合中只会出现一次。
# 直接定义集合my_set {1, 2, 3, 4}print(my_set)
{1, 2, 3, 4}# 使用set()函数转换列表为集合my_list [1, 2, 2, 3, 4]my_set_from_list set(my_list)print(my_set_from_list)
{1, 2, 3, 4}
注意空集合只能用set()创建因为{}代表的是空字典。 type({})
class dicttype(set())
class set基本特性
在数学中集合是由不同元素组成的一个整体这些元素是无序的且不重复。Python 的集合类型set正是基于这一概念实现的。与列表list、元组tuple等其他数据结构相比集合有以下几个显著特性
无序性集合中的元素没有固定的顺序。元素唯一性集合中的所有元素都是唯一的不会有重复的元素。可变集合是可变的可以添加或删除元素。动态性集合的大小可以根据需要动态变化。
基本操作
add(element)向集合中添加一个元素。remove(element)从集合中移除指定元素如果元素不存在则抛出KeyError异常。discard(element)与remove相似但当元素不存在时不会抛出错误。pop()随机移除并返回集合中的一个元素集合为空时会抛出KeyError。clear()移除集合中所有元素使其成为空集。copy()集合的复制拷贝。 a {1,2,3}a.add(4)a
{1, 2, 3, 4}a.remove(4)a
{1, 2, 3}a.remove(4)
Traceback (most recent call last):File pyshell#11, line 1, in modulea.remove(4)
KeyError: 4a.discard(4)a.discard(3)a
{1, 2}a.pop()
1a
{2}a.clear()a
set()t {2,3,4}t
{2, 3, 4}s t.copy()s
{2, 3, 4}集合运算
union(other_set) 返回两个集合的并集。intersection(other_set) 返回两个集合的交集。difference(other_set) 返回两个集合的差集。symmetric_difference(other_set) 返回两个集合中不重复的元素集合也称对称差集。
集合运算也能使用运算符操作以上四种运算分别对应重载运算符 | 、 、 -、 ^。 s {1,2,3}t {2,3,4}s.union(t)
{1, 2, 3, 4}s | t
{1, 2, 3, 4}s.intersection(t)
{2, 3}s t
{2, 3}s.difference(t)
{1}s - t
{1}s.symmetric_difference(t)
{1, 4}s ^ t
{1, 4}另外对应四个update函数功能对应相同但改变当前集合。
update(other_set) 返回两个集合的并集。intersection_update(other_set) 返回两个集合的交集。difference_update(other_set) 返回两个集合的差集。symmetric_difference_update(other_set) 返回两个集合中不重复的元素集合也称对称差集。 s {1,2,3}t {2,3,4}s.update(t)s
{1, 2, 3, 4}t
{2, 3, 4}s {1,2,3}s.intersection_update(t)s
{2, 3}s {1,2,3}s.difference_update(t)s
{1}s {1,2,3}s.symmetric_difference_update(t)s
{1, 4}注改变的是原集合的值四个函数的返回值都是None。
成员测试
in 和 not in检查元素是否属于集合。 s {1,2,3}1 in s
True4 in s
False1 not in s
False4 not in s
True高级操作
子集与超集可以使用 issubset() 和 issuperset() 方法来判断一个集合是否是另一个集合的子集或超集(父集)。 isdisjoint()判断当前集合与另一个集合是否交集为空。 幂集幂集是指一个集合所有可能子集的集合可以通过递归或迭代的方式生成。笛卡尔积两个集合的笛卡尔积可以通过 itertools.product() 函数实现。
注比较运算符、 、 、 、 也被重载用于父集、子集的比较。
注笛卡尔积的概念
假设有两个集合 A {a1, a2, ..., an} 和 B {b1, b2, ..., bm}它们的笛卡尔积是所有可能的有序对 (ai, bj) 的集合记作 A×B。 import itertoolss {1,2,3}t {2,3,4}list(itertools.product(s,t))
[(1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 2), (3, 3), (3, 4)]集合推导式
类似于列表推导式集合也可以通过集合推导式快速生成。集合推导式语法简洁适用于根据已有集合或其他可迭代对象生成新集合。 squares {x**2 for x in range(10)}print(squares)
{0, 1, 4, 9, 16, 25, 36, 49, 64, 81}
总结
Python集合是一种无序、不重复元素的集合数据类型它提供了丰富的操作方法包括元素的添加、删除、集合运算等。集合在数据处理、算法设计等方面具有广泛的应用特别是对于需要去重、集合运算的场景集合的效率和简洁性使其成为首选工具。通过掌握集合的基本操作和高级特性开发者可以更加灵活高效地处理数据提升代码的性能和可读性。随着Python在数据分析、机器学习、Web开发等领域的广泛应用深入理解并有效利用集合功能已成为Python程序员的一项重要技能。