Pleasure in the job puts perfection in the work.
工作中的快乐使工作变得完美。
小闫语录:
学会发现工作中的乐趣,每一次的成就感都会成为任务的助力,让工作高效的进行,完美的完成。
昨天的文章『每天 3 分钟,小闫带你学 Python(十六)』讲了字典的遍历相关操作,可以遍历字典的键,可以遍历字典中的值,也可以遍历字典中的键值对,甚至可以遍历出每个元素以及对应的索引。今天将开始全新的内容。
1.熟记集合的形式。
2.掌握定义空集合的方法。
3.学会集合的相关操作。
4.理解交集和并集的概念以及操作方法。
集合的形式如下:
{1, 2, 4, 5}
不要觉得它是字典,它里面是单个元素,而非键值对。没错,它和元组、列表类似,只是外部换成了大括号。
那么我们怎么定义一个空集合呢?有以下两种方式:
emptyset = set()
其实对应的元组和列表也可以这样进行定义:
# 定义一个空元组
mytuple = tuple()
# 定义一个空列表
mylist = list()
以下的写法是定义了一个空字典,谨记!!!
set1 = {}
集合是无序的,而且集合中的元素是唯一的。根据以上特点,我们便可以在元素去重的时候使用集合。如列表中元素去重,可以先将其转化成集合,然后再转化成列表。
>>> myset = {1, 2, 3, 4}
>>> myset.add(5)
>>> myset
{1, 2, 3, 4, 5}
可以看到,通过 add
可以将新元素添加到集合 myset
中。
它与上面的 add
稍有不同。 add
是添加单个元素,而 update
则是添加多个元素。 update
中必须传入可迭代对象,即字符串、列表、元组等。先来查看字符串的例子:
>>> myset = {1, 2, 3, 4}
>>> myset.update("abc")
>>> myset
{1, 2, 3, 4, 'b', 'a', 'c'}
我们可以看到该操作是将字符串中的每一个元素都分开单独添加到集合中。
再比如列表:
>>> myset = {1, 2, 3, 4}
>>> myset.update(["a", "b"])
>>> myset
{1, 2, 3, 4, 'b', 'a'}
可以看到列表中每一个元素都单独添加到了集合中。
也许你有疑问:为什么添加的顺序和原顺序不一致?因为集合是无序的。
>>> myset = {1, 2, 3, 4}
>>> myset.remove(1)
>>> myset
{2, 3, 4}
1.可以删除指定元素。 2.使用
remove
删除集合中的元素,如果有,直接删除;如果没有,程序报错。
>>> myset = {1, 2, 3, 4}
>>> myset.pop()
1
>>> myset.pop()
2
pop
会随机删除集合中的元素,当集合中没有元素可以删除的时候,程序会报错。
>>> myset = {1, 2, 3, 4}
>>> myset.discard(0)
>>> myset
{1, 2, 3, 4}
>>> myset.discard(1)
>>> myset
{2, 3, 4}
使用
discard
删除集合中的元素时,如果有要删除的元素,那么会直接删除;没有则不做任何操作,并不会报错。
同数学中的概念相同,交集便是取出两个集合中相同的元素。交集使用符号 &
连接两个集合。
>>> myset = {1, 2, 3, 4}
>>> myset1 = {1, 3, 5, 9}
>>> same = myset & myset1
>>> same
{1, 3}
上方例子中可以看出,两个集合中相同的元素为 1
和 3
,使用变量进行接收,变量的类型仍然为集合。
并集是两个集合中所有的元素合并去重后的集合(由于集合有不重复的特性,因此两集合中重复的元素只会保留一份),所得结果与数学概念中的并集相同。
>>> myset = {1, 2, 3, 4}
>>> myset1 = {1, 3, 5, 9}
>>> same = myset | myset1
>>> same
{1, 2, 3, 4, 5, 9}
1.根据集合的特点,实现两个一个列表中元素的去重。
2.自定义集合,练习添加元素两种操作。
3.自定义集合,练习删除三种操作。
4.自定义两个集合,求他们的交集和并集。