您的位置 首页 电子技术

python集合是什么

python集合 集合(英文名 set),它是一个无序的不重复元素序列。 这里面有两个重点: 无序, 不重复 1. 创建集合 集合的创建有两种方法 第一种方法 :使用 花括号 {} 直接创建,创建的时候, {} 可以包含有重要的元素,但是创建完后,集合会去重,只留第一个。 aset = {\”Apple\”, \”Huawei\”, \”Xiaomi\”} asetset([\’Huawei\’, \’Xiaomi\’, \’Apple\’]) 第二种方法 :使用 set() 方法进行创建,当 set() 函数不接任何参数时,创建的是空集合,如果不创建空集合,可以传入一个列表。 bse\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

python集合

集合(英文名 set),它是一个无序的不重复元素序列。

这里面有两个重点:

无序,

不重复

1. 创建集合

集合的创建有两种方法

第一种方法:使用 花括号 {} 直接创建,创建的时候,{} 可以包含有重要的元素,但是创建完后,集合会去重,只留第一个。

>>> aset = {\"Apple\", \"Huawei\", \"Xiaomi\"}>>> asetset([\'Huawei\', \'Xiaomi\', \'Apple\'])

第二种方法:使用 set() 方法进行创建,当set() 函数不接任何参数时,创建的是空集合,如果不创建空集合,可以传入一个列表。

>>> bset = set()  # 空集合>>> bsetset([])>>> cset = set([\"Apple\", \"Huawei\", \"Xiaomi\"])>>> csetset([\'Huawei\', \'Apple\', \'Xiaomi\'])

2. 增删改查增加元素

使用 add 函数可以往集合中传入函数

>>> aset = set()>>> asetset([])>>> aset.add(\"Apple\")>>> aset.add(\"Huawei\")>>> asetset([\'Huawei\', \'Apple\'])

另外,还可以使用 update 函数,来往集合中添加元素,update 函数后可接集合,列表,元组,字典等。

这是接集合的例子

>>> aset = set()>>> asetset([])>>>>>> # 接集合>>> aset.update({\"Apple\"})>>> asetset([\'Apple\'])>>>>>> # 接列表>>> aset.update([\"Huawei\"])>>> asetset([\'Huawei\', \'Apple\'])>>>>>> # 接元组>>> aset.update((\"Xiaomi\",))>>> asetset([\'Huawei\', \'Apple\', \'Xiaomi\'])>>>>>> # 接字典>>> aset.update({\"VIVO\": \"xxxx\"})>>> asetset([\'Huawei\', \'Apple\', \'VIVO\', \'Xiaomi\'])

删除元素

使用 remove 函数可以删除集合中的元素

>>> aset = {\"Apple\", \"Huawei\", \"Xiaomi\"}>>> aset.remove(\"Xiaomi\")>>> asetset([\'Huawei\', \'Apple\'])

使用 remove 函数,如果对应的元素不存在,是会报错的。

>>> aset = {\"Apple\", \"Huawei\", \"Xiaomi\"}>>> aset.remove(\"VIVO\")Traceback (most recent call last):  File \"\", line 1, in KeyError: \'VIVO\'

对于这种情况,你可以使用 discard 函数,存在元素则移除,不存在也不会报错。

>>> aset = {\"Apple\", \"Huawei\", \"Xiaomi\"}>>> aset.discard(\"VIVO\")>>> asetset([\'Huawei\', \'Xiaomi\', \'Apple\'])

此外,还有一个 pop 函数,用于从集合中随机删除元素,和列表、字典的 pop 不一样,这里的 pop 不能加任何的参数。

>>> aset = {\"Apple\", \"Huawei\", \"Xiaomi\"}>>> aset.pop()\'Huawei\'>>> aset.pop()\'Xiaomi\'>>> aset.pop()\'Apple\'

最后,还要介绍一个 clear 函数,它用于清空集合的元素。

>>> aset = {\"Apple\", \"Huawei\", \"Xiaomi\"}>>> asetset([\'Huawei\', \'Xiaomi\', \'Apple\'])>>> aset.clear()>>> asetset([])

修改元素

文章开头处,已经说明了集合是 无序 的,因此集合是没有索引的。

既然没有索引,修改也无从谈起。

记住:集合只有添加元素、删除元素。

查询元素

同上,没有顺序,也就没有索引,没有索引,查询也无从谈起。

但是我们可以查看集合的其他内容

比如,查看集合的长度

>>> aset = {\"Apple\", \"Huawei\", \"Xiaomi\"}>>> len(aset)3

3. 集合运算求合集

将两个集合进行合并并去重,可以使用 union 函数,下面的示例中,由于 Huawei 是重复的元素,只会保留一个。

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset.union(bset)set([\'Huawei\', \'Apple\', \'Xiaomi\'])

另外还可以使用 | 的操作符

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset | bsetset([\'Huawei\', \'Apple\', \'Xiaomi\'])

求差集

要找出存在集合 A 但是不存在 集合 B 的元素,就是对两个集合求差集。

可以使用 difference 函数,下面的示例中, Apple 在 aset 中存在,但在 bset 中不存在。

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset.difference(bset)set([\'Apple\'])

另外还可以使用 - 的操作符,更加直观

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset - bsetset([\'Apple\'])

求交集

要找出存在集合 A 并且存在集合 B 的元素,就是对两个集合求交集。

可以使用 intersection 函数

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset.intersection(bset)set([\'Huawei\'])>>>

intersection 相似的还有一个 intersection_update 函数,它们的区别是,intersection_update 会原地更新在 aset 上,而不是会回交集。

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset.intersection_update(bset)>>> asetset([\'Huawei\'])

另外还可以使用 & 的操作符

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset & bsetset([\'Huawei\'])

求不重合集

如果计算两个集合中不重复的元素集合,可以使用 symmetric_difference 函数

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset.symmetric_difference(bset)set([\'Xiaomi\', \'Apple\'])

symmetric_difference 相似的还有一个 symmetric_difference_update 函数,它们的区别是,symmetric_difference_update 会原地更新在 aset 上,而不是直接返回。

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset.symmetric_difference_update(bset)>>> asetset([\'Apple\', \'Xiaomi\'])

4. 集合判断判断是否有某元素

>>> aset = {\"Apple\", \"Huawei\"}>>> \"Apple\" in asetTrue

判断两集合是否有相同元素

如果两集合有相同元素,则返回 False,如果没有相同元素,则返回 True

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Xiaomi\", \"Huawei\"}>>> aset.isdisjoint(bset)False

判断是否是子集

>>> aset = {\"Apple\", \"Huawei\"}>>> bset = {\"Huawei\"}>>> bset.issubset(aset)True审核编辑:符乾江

<!–

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: admin

为您推荐

智慧路灯照明系统的应用为智慧城市的发展建设添砖加瓦

智慧路灯照明系统的应用为智慧城市的发展建设添砖加瓦

智慧路灯照明系统的应用为智慧城市的发展建设添砖加瓦-夜间的路灯不仅照亮了黑暗的街道,而且照亮了回家的道路。从街上望去,闪烁的路灯发出暖光,指引着我们家的方向。城市里的路灯就像“守护者”,给长途旅行回来的游客带来了极大的安全感。 当今,路灯智能控制时代的到来,极大地促进了传统路灯的人工机械化运行。虽然对此感到兴奋,但我们不禁要问:随着路灯智能控制的早期到来,除了改善路灯的运行模式,还能带来什么? 为城市交通提供安全保障 城市公共照明系统中的智能路灯在每个路

晶振在五种不同行业中的应用说明

晶振在五种不同行业中的应用说明-晶振在五种不同行业的应用-由TST嘉硕代理KOYU光与电子

几种不同的物联网控制APP模式

本文就简单介绍当前几种物联网控制APP模式,让大家了解几种不同的技术路线。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

苹果稳坐全球可穿戴设备数量首位,占据日本市场超7成份额

苹果稳坐全球可穿戴设备数量首位,占据日本市场超7成份额

苹果公司占据2021年日本第四季度可穿戴设备71.5%份额,占据全球可穿戴设备市场34.9%份额。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

如何用GPUDirect存储器如何缓解CPU I / O瓶颈

除了使用 GPUs 而不是 CPU 加快计算的好处外,一旦整个数据处理管道转移到 GPU 执行,直接存储就起到了一个力倍增器的作用。这一点变得尤为重要,因为数据集大小不再适合系统内存,而且 GPUs 的数据 I / O 增长成为处理时间的瓶颈。当人工智能和数据科学继续重新定义可能的艺术时,启用直接路径可以减少甚至完全缓解这个瓶颈。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

发表评论

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

返回顶部