当前位置:   article > 正文

python3——集合(set)基本用法,学会集合一篇就够了_python3 set()

python3 set()

一、集合概念

集合(set)是一个无序的不重复元素序列

可以使用大括号{}或者set()方法创建集合,但是创建一个空集合必须使用set()不能用{},原因在于{}是用来创建空字典的

set1 = set([1,2,3])
set2 = {1,2,3}
print(set1, set2, sep = '\n')
set3 = set()
set4 = {}
print(type(set3), type(set4), sep = '|')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述


二、集合运算符规则

集合的运算符规则

set1 = {'banana', 'apple', 'watermelon', 'coffee'}
set2 = {'tea', 'coffee', 'sprite', 'apple'}
res1 = 'apple' in set1
print('res1:%s'%res1)
res2 = 'banana' in set2
print('res2:%s'%res2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

set1 = {'banana', 'apple', 'watermelon', 'coffee'}
set2 = {'tea', 'coffee', 'sprite', 'apple'}
res1 = set1 | set2  # set |= other | ...  更新集合,添加来自 others 中的所有元素。
print(' set |= other | ...->%s'%res1)
res2 = set1 - set2  # set -= other | ...更新集合,移除其中也存在于 others 中的元素。
print(' set -= other | ...->%s'%res2)
res3 = set1 & set2  # set &= other & ...更新集合,只保留其中在所有 others 中也存在的元素。
print(' set &= other & ...->%s'%res3)
res4 = set1 ^ set2  # set ^= other 更新集合,只保留存在于集合的一方而非共同存在的元素。
print(' set ^= other ->%s'%res4)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述


三、集合基本操作

集合的基本操作
1、add(elem)
  将元素 elem 添加到集合中。

set1 = {1,2,3,4}
set1.add(6)
print('after use add', set1)
  • 1
  • 2
  • 3

在这里插入图片描述
2、update(elem)
  将元素 elem 添加到集合中。elem可以是列表、元组、字典等

set1.update(['hello', 'python'])
print('after use update(list)', set1)
set1.update(('something', 'just', 'like', 'this'))
print('after use update(tuple)', set1)
set1.update({'name':'python'})
print('after use update(dict)', set1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
3、remove(elem)
  从集合中移除元素 elem。 如果 elem 不存在于集合中则会引发 KeyError。


set1.remove('hello')
print(set1)
set1.remove('what')
print(set1)
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
4、discard(elem)
  如果元素 elem 存在于集合中则将其移除。如果元素不存在,不报错

set1.remove('hello')
print(set1)
set1.discard('what')
print(set1)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
5、pop()
  从集合中移除并返回任意一个元素。 如果集合为空则会引发 KeyError。
  Remove and return an arbitrary set element.
  Raises KeyError if the set is empty.
  set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

set1.pop()
print('delete elem use pop() %s'%set1)
set1.pop()
print('delete elem use pop() %s'%set1)
set1.pop()
print('delete elem use pop() %s'%set1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
6、clear()
  从集合中移除所有元素。

print('before clear:', set1)
set1.clear()
print('after clear:', set1)
  • 1
  • 2
  • 3

在这里插入图片描述


四、非运算符规则

非运算符规则
1、isdisjoint(other)
  如果集合中没有与 other 共有的元素则返回 True。 当且仅当两个集合的交集为空集合时,两者为不相交集合。

set1 = {1,2,3,4}
set2 = {'hello', 2, 3}
res = set1.isdisjoint(set2)
print('set1 and set2',res)
set3 = {1,2,3,4}
set4 = {5,6,7}
res1 = set3.isdisjoint(set4)
print('set3 and set4', res1)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
2、issubset(other)

set <= other
检测是否集合中的每个元素都在 other 之中。

set < other
检测集合是否为 other 的真子集,即 set <= other and set != other。

set3 = {1,2,3,4}
set4 = {1,2,3,4,5,6,7}

res = set3 <= set4
print('set3 <= set4', res)

res = set3 < set4
print('set3 < set4', res)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
3、issuperset(other)

set >= other
检测是否 other 中的每个元素都在集合之中。

set > other
检测集合是否为 other 的真超集,即 set >= other and set != other。

set3 = {1,2,3,4}
set4 = {1,2,3,4,5,6,7}

res = set3 >= set4
print('set3 >= set4', res)

res = set3 > set4
print('set3 > set4', res)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
4、union(*others)

set | other | …
返回一个新集合,其中包含来自原集合以及 others 指定的所有集合中的元素。

set3 = {1, 2, 3, 4}
set4 = {5, 6, 7, 2}
res = set3.union(set4)
print('use union', res)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
5、intersection(*others)

set & other & …
返回一个新集合,其中包含原集合以及 others 指定的所有集合中共有的元素。

set3 = {1, 2, 3, 4}
set4 = {5, 6, 7, 2}
res = set3.intersection(set4)
print('use intersection', res)

  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
6、difference(*others)

set - other - …
返回一个新集合,其中包含原集合中在 others 指定的其他集合中不存在的元素。

set3 = {1, 2, 3, 4}
set4 = {5, 6, 7, 2}
res = set3.difference(set4)
print('use difference', res)

  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
7、symmetric_difference(other)

set ^ other
返回一个新集合,其中的元素或属于原集合或属于 other 指定的其他集合,但不能同时属于两者。

set3 = {1, 2, 3, 4}
set4 = {5, 6, 7, 2}
res = set3.symmetric_difference(set4)
print('use symmetric_difference', res)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述


五、注意

非运算符版本的 union(), intersection(), difference(),以及 symmetric_difference(), issubset() 和 issuperset() 方法会接受任意可迭代对象作为参数。 相比之下,它们所对应的运算符版本则要求其参数为集合。 这就排除了容易出错的构造形式例如 set(‘abc’) & ‘cbs’,而推荐可读性更强的 set(‘abc’).intersection(‘cbs’)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/75372
推荐阅读
相关标签
  

闽ICP备14008679号