前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-集合

python-集合

作者头像
py3study
发布2020-01-13 14:20:33
4250
发布2020-01-13 14:20:33
举报
文章被收录于专栏:python3python3

Set (集合)

1 Set 定义:set可以用{}表示,但是不能用s{}这样定义,如果这样写,python编辑器会默认为是字典。

wKioL1deFP7CdPelAAAGA__3jps738.png
wKioL1deFP7CdPelAAAGA__3jps738.png

这样定义就不会是字典,里面加一些内容。

wKiom1deFF3wh_6KAAADutYCnjg262.png
wKiom1deFF3wh_6KAAADutYCnjg262.png

2 元祖和列表是有序的,集合是无序的且集合中的元素不重复。(python根据集合中的每个元素的hash值来判断元素是否重复,所以集合中的每个元素必须是可hash的对象,在python中如果一个对象有一个_hash_的方法,表示该对象可hash)

wKiom1deFGzRfyqJAAAETFEkLx0950.png
wKiom1deFGzRfyqJAAAETFEkLx0950.png

3 集合的操作。

(1)add(添加的数是随机加入集合的)

wKioL1deFb_xtQ1XAAAGgWeF9mI878.png
wKioL1deFb_xtQ1XAAAGgWeF9mI878.png

(2)update(就相当于list中的extend方法,将迭代器中的元素追加到集合中)

wKioL1deFdGTMuvAAAAGrf-Tc44752.png
wKioL1deFdGTMuvAAAAGrf-Tc44752.png

(3)remove 删除集合里的某个元素,如果集合内无此元素那么就会报错。

wKioL1deFfOBH4J2AAAM2LD-e8c448.png
wKioL1deFfOBH4J2AAAM2LD-e8c448.png

(4)discard 删除集合内某个元素,如果集合内无此元素不做任何操作。

wKiom1deFPqwIvg-AAAI8D2GpJ8868.png
wKiom1deFPqwIvg-AAAI8D2GpJ8868.png

(5)pop随机删除某个元素,并返回改元素。(返回的元素如果是要用可以用一个变量接受)

wKioL1deFh6gwcPNAAAF_Ptv10s429.png
wKioL1deFh6gwcPNAAAF_Ptv10s429.png

(6)clear清空集合。

wKioL1deFi-DGQ9lAAADD2RDH4k220.png
wKioL1deFi-DGQ9lAAADD2RDH4k220.png

4 集合的运算

(1.1 ) difference 两个集合的差集,不修改原来的集合。

wKioL1deFkDhaIqpAAAGUzyghgE422.png
wKioL1deFkDhaIqpAAAGUzyghgE422.png
wKiom1deFq2TOliXAAAHYCK-vnk617.png
wKiom1deFq2TOliXAAAHYCK-vnk617.png

S1.difference(s2) 表示在s1集合里有的元素在s2集合里没有。

# s1 – s2 也表示的是difference。

(1.2) difference_update 两个集合的差集,但修改了原来集合的内容,不返回值。(这些例子是s1相对于s2)

S1={1,2,3,4,’a’} s2={3,4,5,6,’c’,’b’}

wKiom1deFtmBhYyQAAAJr9C9w-k797.png
wKiom1deFtmBhYyQAAAJr9C9w-k797.png

(2.1)intersection两个集合的交集,返回值,不修改原来集合的内容。

wKiom1deFueR52V9AAAJkEWKRIM887.png
wKiom1deFueR52V9AAAJkEWKRIM887.png

(2.2)intersection_update两个集合的交集,无返回值,修改原来集合的内容。

wKiom1deFvawDBYmAAAGEERT5O8866.png
wKiom1deFvawDBYmAAAGEERT5O8866.png

# s1 & s2 可以直接求两个集合的交集

(3.1)union 两个集合的并集,无返回值,不修改原来的集合内容。

wKioL1deGBbylr8GAAAWAoPmnTU992.png
wKioL1deGBbylr8GAAAWAoPmnTU992.png

(4.1)isdisjoint查看两个集合是否有交集,Flase是无,True是有(每个python的解释器版本一样返回值也不一样,此例是2.7.1)

wKioL1deGCyi4m24AAAEqqe2Ync250.png
wKioL1deGCyi4m24AAAEqqe2Ync250.png

(4.2)issubset 查看是否有子集。

5 集合不能切片。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档