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