Python 集合类型


集合基本上是不同散列表对象的无序集合。我们可以使用集合进行一些数学运算,例如集合并集、交集、差集等。我们还可以使用集合从集合中删除重复项。

集合不记录元素位置。它不支持索引、切片或其他与序列相关的操作。

在 Python 中,基本上有两种类型的集合。setfrozenset。set 类型是可变的,而 frozenset 是不可变的。我们可以在 set 上执行 add()、remove() 和此类操作,但 frozenset 不允许。

一些与集合相关的函数和操作如下所示:

方法 len(s)

len() 方法返回集合中元素的数量。

操作 (x in s) 或 (y not in s)

innot in 操作用于检查元素是否属于集合。在第一个语句 (x in s) 中,当值 x 在集合 s 中时,它将返回 True。第二个 (y not in s) 将返回 True,当元素 y 不存在于集合中时。

方法 isdisjoint(other_set)

此方法将检查 other_set 是否与当前集合不相交。如果两者至少有一个元素相同,则该方法将返回 False。

方法 issuperset(other_set)

当 other_set 集合中的所有元素也存在于当前集合中时,此函数返回 True。它基本上检查当前集合是否为 other_set 的超集。

方法 union(other_set)

union() 函数通过收集当前集合和 other_set 中的所有元素来返回一个新集合。

方法 intersection(other_set)

intersection() 函数通过收集当前集合和 other_set 中的公共元素来返回一个新集合。

方法 difference(other_set)

difference() 方法将返回一个集合,其中最终集合包含第一个集合中的所有元素,除了这两个集合的公共元素。

方法 add(elem)

将元素 elem 添加到集合中。

方法 discard(elem)

从集合中删除元素 elem。当 elem 存在于集合中时,这将起作用。还有另一种称为 remove() 的方法。在 remove() 中,如果项目不存在于集合中,它将引发 KeyError。

示例代码

在线演示

mySet1 = {1, 2, 5, 6}
mySet2 = {8, 5, 3, 4}
mySet3 = set(range(15)) # all elements from 0 to 14 in the set
mySet4 = {10, 20, 30, 40}
print(set(mySet1.union(mySet2)))
print(set(mySet1.intersection(mySet2)))
print(set(mySet1.difference(mySet2)))

print(mySet3.issuperset(mySet1))
print(mySet1.isdisjoint(mySet4))

mySet4.add(45)
print(mySet4)

mySet4.discard(40)
print(mySet4)

输出

set([1, 2, 3, 4, 5, 6, 8])
set([5])
set([1, 2, 6])
True
True
set([40, 10, 20, 45, 30])
set([10, 20, 45, 30])

更新于: 2019-07-30

4K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告