数据结构 -- 集合
集合¶
In [1]:
# 集合是无序的(所以不能同过索引取值),不可重复的数据集合
# 它里面的元素是可哈希的(不可变数据类型),但集合本身是可哈希的
# 集合最重要的两点,去重和关系测试
创建集合¶
In [2]:
# 集合也是使用{}来表示,但是空集合不能使用{}要使用set()
a = set()
print(a,type(a))
In [3]:
a = {1,2,3}
print(a,type(a))
集合的修改¶
In [8]:
# add() 添加元素
a = {1,2,3}
a.add("wa")
print(a)
In [9]:
# update() 迭代去增
a = {1,2,3}
a.update("wa")
print(a)
In [10]:
# remove() 删除指定元素
a = {1,2,3}
a.remove(1)
print(a)
In [11]:
# pop() 随机删除,并返回结果
a = {1,2,3}
b = a.pop()
print(a,b)
In [12]:
# clear() 清空集合
a = {1,2,3}
a.clear()
print(a)
In [13]:
# del 删除集合
a = {1,2,3}
del a # 之后a不存在
print(a)
In [14]:
# 集合不能去修改其中的值,只能添加或删除,可以通过循环去遍历
集合的关系测试¶
In [15]:
# 交集 & 或者 intersection
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2)
print(set1.intersection(set2))
In [16]:
# 并集 | 或者 union
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2)
print(set2.union(set1))
In [17]:
# 反交集 ^ 或者 symmetric_difference
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2)
print(set1.symmetric_difference(set2))
In [18]:
# 子集与超集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2)
print(set1.issubset(set2)) # set1是set2的子集
In [19]:
print(set2 > set1)
print(set2.issuperset(set1)) # set2是set1的超集
In [20]:
# 创建不可修改的集合
s = frozenset({1,2,3,4})
print(s,type(s))
In [21]:
# 尝试删除集合元素
s.pop()

浙公网安备 33010602011771号