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)