遍历集合
In 遍历
- >>> s1
- {
- 4, 'a', 'x', 'c', 'b'
- }
- >>> for value in s1:
- ... print(value)
- ...
- 4
- a
- x
- c
- b
使用 enumerate 进行遍历
- >>> for index,value in enumerate(s1):
- ... print(index,value)
- ...
- 0 4
- 1 a
- 2 x
- 3 c
- 4 b
集合转换成字符串
- >>> s1
- {
- 4, 'a', 'x', 'c', 'b'
- }
- >>> s = "".join({str(v) for v in s1})
- >>> s
- 'axcb4'
- >>> set1 = {"a","b","c"}
- >>> "".join(set1)
- 'cba'
集合转换成元组
- >>> s1
- {
- 4, 'a', 'x', 'c', 'b'
- }
- >>> t = tuple(s1)
- >>> t
- (4, 'a', 'x', 'c', 'b')
集合转列表
- >>> lst = list(s1)
- >>> lst
- [4, 'a', 'x', 'c', 'b']
set.clear()清空集合
- >>> s1
- {
- 4, 'a', 'x', 'c', 'b'
- }
- >>> s1.clear()
- >>> s1
- set()
set.copy()复制集合
- >>> s1 = set("abcd")
- >>> s1
- {
- 'c', 'd', 'b', 'a'
- }
- >>> s2 = s1.copy()
- >>> s2
- {
- 'c', 'd', 'b', 'a'
- }
len(set)求集合长度
- >>> print (len(s1))
- 4
交集
利用 & 符号
- >>> s1 = {
- 1,2,3,4
- }
- >>> s2 = {
- 3,4,5,6
- }
- >>> s1&s2
- {
- 3, 4
- }
- set1.intersection(set2)
- >>> s1.intersection(s2)
- {
- 3, 4
- }
- set1.intersection_update(set2)
交集更新操作
返回两个集合的交集, set1 中其他元素被删除
- >>> s1
- {
- 1, 2, 3, 4
- }
- >>> s2
- {
- 3, 4, 5, 6
- }
- >>> s1.intersection_update(s2)
- >>> s1
- {
- 3, 4
- }
并集
利用 | 符号
- >>> s1 = {
- 1,2,3,4
- }
- >>> s2 = {
- 3,4,5,6
- }
- >>> s1|s2
- {
- 1, 2, 3, 4, 5, 6
- }
- set1.union(set2)
- >>> s1.union(s2)
- {
- 1, 2, 3, 4, 5, 6
- }
- set1.update(set2)
并集更新操作, set2 中的元素被添加到 set1
- >>> s1.update(s2)
- >>> s1
- {
- 1, 2, 3, 4, 5, 6
- }
差集
利用 - 减号
- >>> s1 = {
- 1,2,3,4
- }
- >>> s2 = {
- 3,4,5,6
- }
- >>> s1-s2
- {
- 1, 2
- }
- set1.difference(set2)
- >>> s1.difference(s2)
- {
- 1, 2
- }
- Set1.difference_update(set2)
差集更新操作, 返回 set1 和 set2 的差集, set1 中的其他不在 set2 中的元素被删除
- >>> s1 = {
- 1,2,3,4
- }
- >>> s2 = {
- 3,4,5,6
- }
- >>> s1.difference_update(s2)
- >>> s1
- {
- 1, 2
- }
set1.symmetric_difference(set2)对称差集
两个集合中所有不属于两个集合交集的元素
对称差集: 集合 A 与集合 B 的对称差集定义为集合 A 与集合 B 中所有不属于 A∩B 的元素的集合, 记为 A△B, 也就是说 A△B={x|x∈A∪B,x?A∩B}, 即 A△B=(A∪B)-(A∩B). 也就是 A△B=(A-B)∪(B-A)
- >>> s1.symmetric_difference(s2)
- {
- 1, 2, 5, 6
- }
set1.symmetric_difference_update(set2)对称差集更新操作
Set1 返回两个集合的对称差集
- >>> s1.symmetric_difference_update(s2)
- >>> s1
- {
- 1, 2, 5, 6
- }
判断集合的关系
利用> ,>=, ,<<=
集合可以使用大于 (>), 小于(<), 大于等于(>=), 小于等于(<=), 等于(==), 不等于(!=) 来判断某个集合是否完全包含于另一个集合, 也可以使用子父集判断函数.
> 是左边集合是否完全包含右边集合
- >>> a = {
- "a","b","c"
- }
- >>> a
- {
- 'c', 'b', 'a'
- }
- >>> b = {
- "a","b"
- }
- >>> b
- {
- 'b', 'a'
- }
- >>> a> b
- True
- >>> c = {
- "a","d"
- }
- >>> a> c
- False
- set1.issuperset(set2)
判断 set1 是否是 set2 的超集
- >>> a
- {
- 1, 2, 3, 4, 5, 6, 7
- }
- >>> b
- {
- 1, 2, 3, 4
- }
- >>> a.issuperset(b)
- True
- set1.issubset(set2)
判断 set1 是否是 set2 的子集
- >>> a
- {
- 1, 2, 3, 4, 5, 6, 7
- }
- >>> b
- {
- 1, 2, 3, 4
- }
- >>> b.issubset(a)
- True
set1.isdisjoint(set2)是否不存在交集
判断两个集合是否不存在交集, 如果两个集合没有交集, 返回 True, 如果有交集返回 False
- >>> a = {
- 1,3
- }
- >>> b = {
- 4,6
- }
- >>> a.isdisjoint(b)
- True
- >>> s1
- {
- 1, 2, 5, 6
- }
- >>> s2
- {
- 3, 4, 5, 6
- }
- >>> s1.isdisjoint(s2)
- False
集合推导式
基本集合推倒式
- >>> a = {
- 1,2,3,4
- }
- >>> {
- i*2 for i in a
- }
- {
- 8, 2, 4, 6
- }
- >>> {
- i*2 for i in range(5)
- }
- {
- 0, 2, 4, 6, 8
- }
带 if 条件的集合推导式
- >>> {
- i**2 for i in a if i%2==0
- }
- {
- 16, 4
- }
多层循环集合推导式
- >>> {
- x+y for x in a for y in b
- }
- {
- 'bx', 'ay', 'cx', 'ax', 'by', 'bz', 'cz', 'az', 'cy'
- }
python 学习(30)_集合_2
来源: http://www.bubuko.com/infodetail-2929727.html