Python 集合
2020-04-02 本文已影响0人
lc_666
- 关键字:
set
; - 无序不重复的元素序列;
- 定义空集合,只能使用
set1 = set()
; - 定义非空集合,使用
set2 = {1, 3, 4}
; - 使用
set()
对列表去重;
l1 = [1, 1, 1, 2, 3, 4, ]
s1 = set(l1)
print(s1)
#{1, 2, 3, 4}
增删查
新增
-
add(),update()
; -
add()
参数为list
或者tuple
时,会将其作为一个整体添加到set
中;
names = set()
names.add('test')
print(names)#{'test'}
t1 = ('lucy', 'bob')
names.update(t1)
print(names)#{'test', 'lucy', 'bob'}
names.add(t1)
print(names)#{('lucy', 'bob'), 'test', 'lucy', 'bob'}
删除
-
remove()
删除指定元素,元素不存在会报错keyError
; -
pop()
随机删除元素; -
clear()
清空元素; -
discard()
同remove()
,但是元素不存在不会报错;
查询
- 使用
for
循环获取数据; - 转换为
list
之后通过下标访问;
set其他符号操作
-
in、not in
:判断元素是否在集合中; -
==
:判断两个结合内容是否相同,!=
判断内容是否不同; -
不支持
+、*
; -
-
获取两个集合的差集,同difference()
方法;
set1 = {1, 2, 3, 4}
set2 = {4, 3, 2, 6}
print(set2.difference(set1))#{6}
print(set2-set1)#{6}
-
&
获取两个集合的交集,同intersection()
;
set1 = {1, 2, 3, 4}
set2 = {4, 3, 2, 6}
print(set2 & set1) # {2, 3, 4}
print(set2.intersection(set1)) # {2, 3, 4}
-
|
获取两个集合的并集,同union()
;
set1 = {1, 2, 3, 4}
set2 = {4, 3, 2, 6}
print(set2 | set1) # {1, 2, 3, 4, 6}
print(set2.union(set1)) # {1, 2, 3, 4, 6}
-
^
获取两个集合中不同的元素,对称差集,同symmetric_difference()
方法;
set1 = {1, 2, 3, 4}
set2 = {4, 3, 2, 6}
print(set2 ^ set1) # {1, 6}
-
difference_update()、intersection_update()、symmetric_difference_update
表示获取差集、并集、对称差集之后再赋值给调用方法的集合;
set1 = {1, 2, 3, 4}
set2 = {4, 3, 2, 6}
set2.difference_update(set1)
print(set2)