昨天的文章『每天 3 分钟,小闫带你学 Python(十一)』讲了列表的下标索引和切片、列表的循环遍历以及列表的嵌套。下标索引和切片与字符串操作相同,循环遍历用到了 for
循环和 while
循环,而列表的嵌套则同 if
等语句类似,就是一层套一层而已。
今天继续列表的相关操作。
列表既然是可变的数据类型,那么它应该支持 增删改查
的相关操作,即增加元素、删除元素、修改元素、查找元素。首先来看一下如何给列表增加元素。
前面已经讲过一个方法,那便是 append
。如下示例:
>>> mylist = [1, 2, 3]
>>> mylist.append('EthanYan')
>>> mylist
[1, 2, 3, 'EthanYan']
append 方法可以向列表尾部添加元素。 在 python 自带的解释器中,如果输入变量,那么会直接返回其值,并不需要 print 操作。解答一部分小伙伴的疑惑。
>>
后方是代码,下方为对应的输出结果。
extend
可以将一个列表中的元素,逐一添加到另一个列表中:
>>> mylist = [1, 2, 3]
>>> testlist = [4, 5, 6]
>>> mylist.extend(testlist)
>>> mylist
[1, 2, 3, 4, 5, 6]
有人也许有疑惑,难道 append
不可以吗?咱们下面进行实验:
>>> mylist = [1, 2, 3]
>>> testlist = [4, 5, 6]
>>> mylist.append(testlist)
>>> mylist
[1, 2, 3, [4, 5, 6]]
可以看到,上方的
append
是将testlist
作为一个整体添加到了mylist
的尾部。
insert
就厉害了,它可以在指定的位置处添加元素,可以称其为 插入
,对应 insert
的翻译。语法为:
insert(index, object)
index 代表下标,object 代表插入的对象
示例如下:
>>> mylist = [1, 2, 3]
>>> mylist.insert(2, 'EthanYan')
>>> mylist
[1, 2, 'EthanYan', 3]
可以看到我们在下标为 2 处,添加元素
EthanYan
后,原本下标为 2 处的元素向后移动了一个位置。
类比现实生活,一个公司名单中有 6 个人,做裁员后,名单中只剩下了老板。先不要考虑倒闭之类的情况,该如何进行操作?肯定是将其中 5 人的名字从名单中删除。列表也需要这样的功能。下面介绍三个删除的方法:
del
可以根据下标进行删除相应元素
>>> mylist = [1, 2, 3]
>>> del mylist[0]
>>> mylist
[2, 3]
上述操作为删除
0
号元素,再次输出原列表,发现已经删除。
pop
方法可以删除列表中最后一个元素
>>> mylist = [1, 2, 3]
>>> mylist.pop()
3
>>> mylist
[1, 2]
可以看到在执行 mylist.pop()
时,会有一个返回值,那便是最后一个元素。返回值是执行相关操作后返回给我们的结果。因此我们可以在执行 pop
时,使用变量进行接收返回值。最后发现原列表中删除掉了最后一个元素。
>>> mylist = [1, 2, 3]
>>> ele = mylist.pop()
>>> ele
3
ele 在接收返回值后,输出其值,发现为列表最后一个元素。
其实 pop
方法中也可以传入下标,进行删除指定的元素,它与 del
的不同之处为 pop
方法执行后会有一个返回值,那便是删除的元素,我们可以使用变量进行接收。
>>> mylist = [1, 2, 3]
>>> ele = mylist.pop(0)
>>> ele
1
删除 0 号元素后,会将 0 号处的值返回,使用变量 ele
进行接收,发现变量的值为删除的元素。
remove
根据元素的值进行删除,比如要从名单中删除 小红
,那么直接将 小红
作为参数传到方法中,进行删除即可。如下示例:
>>> mylist = [1, 2, 3]
>>> mylist.remove(1)
>>> mylist
[2, 3]
remove
的括号中传入要删除的元素值,比如上方代码要删除列表中的元素 1
,那么我们直接将 1
传入,操作执行后查看原列表,得到验证。
前面记忆了大量的方法,大家是不是感觉有些混乱。修改元素没有新的方法,使用之前的下标即可完成。思路为:利用下标找到对应的元素,然后对其重新赋值即可,如下:
>>> mylist = [2, 7, 3, 5]
>>> mylist[1] = 'EthanYan'
>>> mylist
[2, 'EthanYan', 3, 5]
上方代码将列表中 1 号元素 7
修改为 EthanYan
查找某一个元素是否在列表中,可以使用两个方法 in
或者 notin
。如同他们本身的英文含义一样。返回结果为布尔值,ture 或者 flase。true 代表在,false 代表不在。
>>> mylist = [2, 7, 3, 5]
>>> 1 in mylist
False
>>> 2 in mylist
True
>>> 1 not in mylist
True
这俩方法是不是似曾相识?没错,字符串的相关操作中见过它俩,其实它们的含义也是相同的,下面举例验证:
index
表示查询元素的下标。
>>> mylist = [2, 7, 3, 5]
>>> mylist.index(2, 0, len(mylist))
0
如上代码,index 中第一个参数 2 为要查询的元素值;第二个参数 0 为起始下标;第三个参数 len(mylist) 为结束位置下标。 执行完此方法返回结果为查询元素值的下标。 注意:不包含结束位置下标。即起始下标到结束下标的区间是左闭右开的。
count
方法可以统计某个元素在列表中出现的次数。
>>> mylist = [2, 7, 3, 5, 2, 2]
>>> mylist.count(2)
3
列表中 2 出现了 3 次,因此执行完此方法后返回出现次数 3.
列表可以将元素执行排序操作,如列表为 [1, 2, 3] ,想让其变为 [3, 2, 1]。列表的排序操作有两个常用方法,如下:
sort
方法是将列表按特定顺序重新排列,默认为由小到大,参数 reverse=True 可改为倒序,由大到小。
>>> mylist = [2, 7, 3, 5]
>>> mylist.sort()
>>> mylist
[2, 3, 5, 7]
>>> mylist.sort(reverse=True)
>>> mylist
[7, 5, 3, 2]
reverse
方法是将列表逆置,即将列表反转,原本是 [2, 5, 3] ,执行此方法后变为 [3, 5, 2]。
>>> mylist = [2, 5, 3]
>>> mylist.reverse()
>>> mylist
[3, 5, 2]
今日学习目标:熟练掌握列表的增删改查操作。
1.结合示例练习列表的增删改查操作