py_10 集合:交、并、差、对称差集
2020-07-20 本文已影响0人
阿登20
集合
一、集合的作用: 去重
二、集合的创建
- set() 空集合
- {} 不是集合,是一个空字典
三、增(add update)
add(obj),增加元素,元素重复不增加
update(iterable) 参数是多个可迭代对象
四、删(pop discard remove)
pip() 随机删除 discard(obj)删除不存在的元素不报错 remove()元素不存在报错
五、集合特有的操作:交、并、差、对称差集
- a&b :交集 表两个集合的共同元素,等价于a.intersection(b)
- a|b:并集 表两个集合的所有元素,等价于a.union(b)
- a-b:差集 表只属于a,但不属于b的元素,等价于a.difference(b)
- a^b:对称差分集 表两个集合的非共同元素,等价于a.symmetric_difference(b)
image.png
一、集合的作用
- 去重
- 集合是无序的序列类型
二、集合的创建
- set() 空集合
- {} 不是集合,是一个空字典
三、增(add update)
add(obj),增加元素,元素重复不增加
a = set("abc")
a.add("cd")
print(a) # {'cd', 'b', 'c', 'a'}
update(iterable) 参数是多个可迭代对象
a = set("abc")
a.update((1,2,3),[4,5,6],{"name": "阿登", "age": 18})
print(a) # {1, 2, 3, 4, 5, 6, 'age', 'name', 'a', 'b', 'c'}
四、删(pop discard remove)
1.pop()随机删除
# discard(obj) obj元素不存在不会报错
# remove(obj) 元素不存在会报错
a = set("abc")
a.pop()
print(a) # {'c', 'a'}
2.discard(obj) 删除,元素不存在不会报错
a = set("abc")
a.discard("a") # 删除一个存在的元素 a
print(a) # {'c', 'b'}
a.discard(1) # 删除一个不存在的元素 1,不会报错
print(a) # {'c', 'b'}
3.remove(obj) 元素不存在会报错
# remove(obj)
a = set("abc")
a.remove("a") # 删除一个存在的元素 a
print(a) # {'c', 'b'}
a.remove(1) # 删除一个不存在的元素 1,会报错
print(a) # KeyError: 1
五、集合特有的操作:交、并、差、对称差集
集合里面交、并、差、对称差集其实也是集合的专用操作。
-
a&b :交集 表两个集合的共同元素,等价于a.intersection(b)
-
a|b:并集 表两个集合的所有元素,等价于a.union(b)
-
a-b:差集 表只属于a,但不属于b的元素,等价于a.difference(b)
-
a^b:对称差分集 表两个集合的非共同元素,等价于a.symmetric_difference(b)
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
# 1.求并集,重复的会删除
c = a | b
print(c) # {1, 2, 3, 4, 5, 6}
e = a.union(b)
print(e) # {1, 2, 3, 4, 5, 6}
# 2. 求交集,两者共有的元素
c = a & b
print(c) # {3, 4}
e = a.intersection(b)
print(e) # {3, 4}
# 3. 求差集,只属于前者的元素
c = a - b
print(c) # {1, 2}
e = a.difference(b)
print(e) # {1, 2}
# 4.求 对称差集,两个集合的非共同元素
c = a ^ b
print(c) # {1, 2, 5, 6}
e = a.symmetric_difference(b)
print(e) # {1, 2, 5, 6}