Python集合

集合(set)是一个无序的不重复元素序列,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

a = set('aaa')
b = {'aaa'}
c = {'a', 'a', 'a'}
d = set(['aaa'])print(a)
print(b)
print(c)
print(d)

输出结果:

{'a'}
{'aaa'}
{'a'}
{'aaa'}

可以看出set()和{}方法是有区别的:

set(‘aaa’) = {‘a’, ‘a’, ‘a’}     set([‘aaa’]) = {‘aaa’}

集合间的运算

s = set('Hi')
t = set('Hello')

a = t | s  # t 和 s的并集
b = t & s  # t 和 s的交集
c = t - s  # 求差集(项在t中,但不在s中)
d = t ^ s  # 对称差集(项在t或s中,但不会同时出现在二者中

print(a)
print(b)
print(c)
print(d)

输出结果:

{'H', 'e', 'i', 'o', 'l'}
{'H'}
{'e', 'o', 'l'}
{'e', 'i', 'o', 'l'}

集合的内置方法

序号 方法
1

add()

为集合添加元素

2

clear()

移除集合中的所有元素

3

copy()

浅copy一个集合

4

difference()

返回多个集合的差集

5

difference_update()

移除集合中的元素,该元素在指定的集合也存在

6

discard()

删除集合中指定的元素(元素不存在不会发生错误)

7

intersection()

返回集合的交集

8

intersection_update()

删除集合中的元素,该元素在指定的集合中不存在

9

isdisjoint()

判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False

10

issubset()

判断指定集合是否为该方法参数集合的子集

11

issuperset()

判断该方法的参数集合是否为指定集合的子集

12

pop()

随机移除元素

13

remove()

移除指定元素(元素不存在会发生错误)

14 symmetric_difference()
返回两个集合中不重复的元素集合
15 symmetric_difference_update()
移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中
16

union()

返回两个集合的并集

17

update()

给集合添加多个元素

 

可用len()计算元素个数

x in s 判断元素x是否在集合s中

frozenset: 无法修改的集合,不具备修改集合的方法

原文地址:https://www.cnblogs.com/dbf-/p/10570133.html