- 关键字:
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}
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)
网友评论