python集合操作和内置方法

时间:2021-11-24 02:38:42

一 集合基本介绍

集合:在{}内用逗号隔开每个值,集合的特点:

  1. 每个值必须是不可变类型
  2. 集合是无序的
  3. 集合的值不能重复

集合的应用场景较少,最重要的应用场景为进行关系运算以及去重。

二 集合的操作

1 求两个集合的交集

set1 = {1,2,3,4,'a','b','c','d'}
set2 = {4,5,6,7,'c','d','e','f'}print(set1 & set2)
# 输出结果为 (4,'c','d')

2 求两个集合的并集

set1 = {1,2,3,4,'a','b','c','d'}
set2 = {4,5,6,7,'c','d','e','f'}print(set1 | set2)
# 输出结果为 (1,2,3,4,5,6,7,'a','b','c','d','e','f')

3 求两个集合的差集

set1 = {1,2,3,4,'a','b','c','d'}
set2 = {4,5,6,7,'c','d','e','f'}
print(set1 - set2)
# 输出结果为 {1, 2, 3, 'b', 'a'}

4 求两个集合的对称差集

set1 = {1,2,3,4,'a','b','c','d'}
set2 = {4,5,6,7,'c','d','e','f'}
print((set1 - set2) | (set2 - set1))
print(set1 ^ set2)
# 输出结果为 {1, 2, 'a', 5, 6, 7, 'f', 3, 'b', 'e'}

5 集合父子集关系:指的是集合包含与被包含关系

s1={1,2,3}
s2={1,2}
print(s1 >= s2)
print(s1.issuperset(s2))
print(s2.issubset(s1)) # 情况一:
print(s1 > s2) #>号代表s1是包含s2的,称之为s1为s2的父集
print(s2 < s1) # 情况二:
s1={1,2,3}
s2={1,2,3}
print(s1 == s2) #s1如果等于s2,也可以称为s1是s2的父集合

需要掌握的操作

s1={1,2,3}
# s1.update({3,4,5})
# print(s1)
# print(s1.pop())
# print(s1) # s1.remove(2)
# print(s1) # s1={1,2,3}
# print(id(s1))
# s1.add(4)
# print(s1)
# print(id(s1)) # s1={1,2,3}
# s1.discard(4)
# s1.remove(4)
# print(s1) # s1={1,2,3}
# s2={4,5}
# print(s1.isdisjoint(s2)) #总结
# 存多个值
# 无序
# set可变