集合的使用
优先级 : () not >and> or 从左至右依次计算。
and 且 前后都是真的
or 或 有一个为真 就为真
not 非 取反 同等优先条件下 从左至右依次运算
x and y 如果x为真 则值为y 否则为 x
----------------------------------------------------------------------
集合的使用
集合是无序的,不重复的数据集合,他里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的,以下是集合最重要的两点:
去重,把一个列表变成集合,就自动去重了
关系测试,测试量组数据之间的交集、差集、并集等关系
一、集合的创建
set1 = set({1,2,'barry'})
set1 = {'1','alex',2,True}
set2 = {'1','alex',2,True,[1,2,3]} # 报错
set3 = {'1','alex',2,True,(1,2,[1,2,3])} # 报错
二、去重
l = [1,1,2,2,3,4,5,5] set1 = set(l) print(set1) l = list(set1) print(l)
三、集合的增
# add
set1 = {'alex','wusir','ritian','egon','barry'}
set1.add('景女神')
print(set1)
# update迭代增加
set1 = {'alex','wusir','ritian','egon','barry'}
set1.update('A')
print(set1)
set1.update('老师')
print(set1)
set1.update([1,2,3])
print(set1)
四、集合的删
set1 = {'alex','wusir','ritian','egon','barry'}
set1.remove('alex') # 删除一个元素
print(set1)
set1.pop() # 随机删除一个元素,返回被删除的元素
print(set1)
set1.clear() # 清空集合
print(set1)
del set1 # 删除集合
print(set1)
五、集合的查
使用for循环查找
六、集合的其它操作
# 交集 & 或者 intersection
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2) # {4, 5}
print(set1.intersection(set2)) # {4, 5}
# 并集 | 或者 union
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7}
print(set2.union(set1)) # {1, 2, 3, 4, 5, 6, 7}
# 差集 - 或者 difference
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 - set2) # {1, 2, 3} set1独有的
print(set1.difference(set2)) # {1, 2, 3}
print(set2 - set1) # {6,7,8}
# 反交集 ^ 或者 symmetric_difference
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2) # {1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8}
# 子集与超集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2)
print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。
print(set2 > set1)
print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。
# frozenset不可变集合
s = frozenset('barry')
print(s,type(s))


浙公网安备 33010602011771号