7.2 集合
集合和列表以及元组很像,集合不能有重复的元素,而且没有下标这个概念。
集合使用花括号:
set1={1,2,43,6,7,2}print(set1) #会打印{1,2,43,6,7},最后的2因为重复已经忽略掉了print(len(set1)) #会打印5而不是6
以下是集合常用的方法:
方法名 | 说明 | 示例 |
---|---|---|
add() | 向集合中添加元素 | s = {1, 2, 3} s.add(4) print(s) #将打印 {1, 2, 3, 4} |
clear() | 清空集合中所有元素 | s = {1, 2, 3} s.clear() print(s) #将打印 set() |
copy() | 复制集合中所有元素 | s = {1, 2, 3} s_copy = s.copy() print(s_copy) #将打印 {1, 2, 3} |
difference() | 返回两个集合差集中的元素 | s1 = {1, 2, 3} s2 = {2, 3, 4, 5} s_diff = s1.difference(s2) print(s_diff) #将打印 {1} |
discard() | 移除集合中指定元素,元素不存在时不会报错 | s = {1, 2, 3, 4} s.discard(3) print(s) #将打印 {1, 2, 4} |
intersection() | 返回两个集合交集中的元素 | s1 = {1, 2, 3} s2 = {2, 3, 4, 5} s_inter = s1.intersection(s2) print(s_inter) #将打印 {2, 3} |
isdisjoint() | 判断两个集合是否没有交集,返回布尔值 | s1 = {1, 2, 3} s2 = {4, 5, 6} print(s1.isdisjoint(s2)) #将打印 True |
issubset() | 判断一个集合是否为另一个集合的子集,返回布尔值 | s1 = {1, 2} s2 = {1, 2, 3} print(s1.issubset(s2)) #将打印 True |
issuperset() | 判断一个集合是否为另一个集合的超集,返回布尔值 | s1 = {1, 2, 3} s2 = {1, 2} print(s1.issuperset(s2)) #将打印 True |
pop() | 随机删除集合中的一个元素,并返回该元素 | s = {1, 2, 3} popped = s.pop() print(popped) #将打印一个集合中随机的元素,比如 1 |
remove() | 删除集合中指定元素,元素不存在时会报错 | s = {1, 2, 3, 4} s.remove(3) print(s) #将打印 {1, 2, 4} |
symmetric_difference() | 返回两个集合对称差集中的元素 | s1 = {1, 2, 3} s2 = {2, 3, 4, 5} s_symmetric_diff = s1.symmetric_difference(s2) print(s_symmetric_diff) #将打印 {1, 4, 5} |
union() | 返回两个集合并集中的元素 | s1 = {1, 2, 3} s2 = {2, 3, 4, 5} s_union = s1.union(s2) print(s_union) #将打印 {1, 2, 3, 4, 5} |
in操作符 | 判断元素是否在集合里 | s1 = {1, 2, 3} t=2 m=5 print(t in s1) #将打印True print(m in s1) #将打印False |
用for仍然可以遍历集合:
set1={1,2,43,6,7,2}for t in set1: print(t)