python集合浅析(一)

112 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的的第10天

集合

集合是一个用于存放批量元素的数据类型,它不是有序的,其中的元素没有顺序关系。集合中的元素没有重复,重复的元素将被自动剔除最终只留下一个。

集合也是用花括号({})来表示,不同于字典的是,花括号中放的是一个个数据,而不是键值对。

集合是可变的,我们可以向其中添加、删除、修改元素。

创建集合

1.创建包含元素的集合

集合 = {元素1, 元素2, 元素N}
​
>>> numbers = {1, 2, 3}
>>> numbers
{1, 2, 3}

2.创建空集合

注意创建空集合不能直接使用 {},那样是表示空字典,而是使用 set(),这才表示空集合

集合 = set()
​
>>> empty_set = set()
>>> empty_set
set()

集合元素的添加

1.向集合中添加一个元素

集合.add(元素)
​
>>> numbers = {1, 2}
>>> numbers.add(3)
>>> numbers
{1, 2, 3}

向集合中添加重复元素时,会被去重处理

>>> numbers = {1, 2}
>>> numbers.add(2)
>>> numbers
{1, 2}

2.从另一集合中批量添加元素

集合.update(另一集合)
​
>>> numbers_1 = {1, 2}
>>> numbers_2 = {2, 3, 4}
>>> numbers_1.update(numbers_2)
>>> numbers_1
{1, 2, 3, 4}

可以看到,集合numbers_2 中的所有元素被添加到了集合 numbers_1 中,并且其中重复的元素被剔除仅保留一份

集合元素的获取

集合不能像列表那样通过索引来获取元素,也不能像字典那样通过键来获取值,集合没法直接获取到某个指定的元素。想要获取元素,只能通过遍历的方式。

虽然集合不能直接获取到元素,但是我们依然可以用 in 关键字来判断元素是否存在于集合中。

1.查看元素是否存在于集合中

布尔值 = 元素 in 集合
​
>>> letters = {‘a’, ‘b’, ‘c’}
>>> ‘a’ in letters
True
>>> ‘z’ in letters
False

集合元素的删除

1.随机删除一个元素,并返回这个元素

使用 pop 方法随机删除一个元素的时候,这个元素会被返回

元素 = 集合.pop()
​
>>> numbers = {1, 2, 3}
>>> numbers.pop()
1
>>> numbers.pop()
2
>>> numbers
{3}

2.删除一个指定的元素

集合.remove(元素)
​
>>> numbers = {1, 2, 3}
>>> numbers.remove(1)
>>> numbers
{2, 3}

如果要删除的元素不存在,则抛出 KeyError 异常

>>> numbers = {1, 2, 3}
>>> numbers.remove(4)
Traceback (most recent call last):
     File “”, line 1, in
KeyError: 4

3.删除一个指定的元素,且不抛出 KeyError 异常

使用 remove 方法删除一个不存在的元素时,会抛出 KeyError 异常,如果我们不想让异常抛出,可以使用 discard 方法

集合.discard(元素)
           
>>> numbers = {1, 2, 3}
>>> numbers.discard(4)
>>> numbers
{1, 2, 3}

4.清空所有元素

集合.clear()
​
>>> numbers = {1, 2, 3}
>>> numbers.clear()
>>> numbers
set()

为什么元组没有这个方法?因为元组是不可变的!我们不能删除元组的元素,也不能添加和修改元素。