列表的高级方法*

  • 列表方法

在Python中,我们还可以对一个列表进行以下操作:

在列表末尾添加新元素————我们可以用append()给列表添加新元素:

>>> list_1 = [1,2,3]
>>> list_1.append(4)
>>> list_1
[1, 2, 3, 4]

 

在特定位置添加新元素————我们可以用insert()给列表添加新元素:

>>> list_2 = [1,2,4]
>>> list_2.insert(2,3)
>>> list_2
[1, 2, 3, 4]

我们注意到,insert()的括号内需要首先填入我们希望新元素所在位置的索引号,再填入希望插入的元素。

 

删除列表最后一个元素————我们可以用pop()完成:

>>> list_3 = [1,2,3]
>>> list_3.pop()
3
>>> list_3
[1, 2]

我们注意到,Python在执行pop()后会首先返回被删除的元素。

 

删除某元素————我们可以用remove()完成:

>>> list_4 = [1,2,1,2,3]
>>> list_4.remove(2)
>>> list_4
[1, 1, 2, 3]

我们注意到,remove后面的括号内填写的是需要删除的元素。并且,如果列表中有多个被指定删除的元素,Python只会删除第一个。

 

查找某元素————我们可以用index()完成:

>>> list_5 = [6, 6, 6, 2, 3, 3]
>>> list_5.index(6)
0
>>> list_5.index(3)
4

我们注意到,如果被查找的元素在列表中有多个,Python只会返回该元素首次出现的位置索引。

 

元素计数————和字符串类似,我们可以用count()完成:

>>> list_5 = ['dog', 'dog', 'cat', 'elephant']
>>> list_5.count('dog')
2

 

列表排序————我们可以用reverse()将列表倒序:

>>> list_6=[1, 7, 4, 6, 2]
>>> list_6.reverse()
>>> list_6
[2, 6, 4, 7, 1]
>>> 

我们注意到,这是列表顺序的倒序,和数字大小无关。我们还可以用sort()让列表根据数字大小、字母顺序等规则排序:

>>> list_6.sort()
>>> list_6
[1, 2, 4, 6, 7]
>>> list_7 = ['alpha', 'zelda', 'peter', 'boy']
>>> list_7.sort()
>>> list_7
['alpha', 'boy', 'peter', 'zelda']

要是列表里又有数字又有字母,甚至还有其他数据类型的对象,那么程序就报错啦。

 

  • 列表切片

和上一节字符串的切片类似,我们可以队列表进行切片:

>>> list_8 = [1, 2, 3]
>>> list_8[1:]
[2, 3]

注意,列表后面跟索引号,返回的是列表中的一个元素;列表切片,返回的则是一个列表。

 

  • 又见可变对象

上一节里,我们看到了字符串作用方法之后,本身并没有发生改变,这是由于字符串是不可变对象。这一节讲的列表,却是一种可变对象:

>>> lst = [1, 2, 3]
>>> lst
[1, 2, 3]
>>> lst.append(5)
>>> lst
[1, 2, 3, 5]
>>> lst.insert(3, 4)
>>> lst
[1, 2, 3, 4, 5]

我们发现,我们并没有给lst这个变量重新赋值,然鹅它所指向的对象————那个“坑”————里面的东西在不停地发生变化。这说明,列表真的是可变对象,所有的方法直接修改了最开始创建的列表。

正因如此,我们可以用索引和赋值的方法,直接改变列表中的元素:

>>> list_7 = ['alpha', 'zelda', 'peter', 'boy']
>>> list_7[0] = 'beta'
>>> list_7
['beta', 'zelda', 'peter', 'boy']

 


列表的操作方法就这些了吗?No骚年!这些是常用的,想知道所有的列表操作方法吗!在IDLE里面输入help(list)试试~

 

  • 本节练习

将列表[28, 6, 99, 1, 46, 90, 17, 4, 19, 108, 71, 66, 24, 5, 17, 36, 92, 2, 64, 82, ‘捣乱’, 3, 11, 75, 34, 62, 98]中不是数字的元素去掉,并将列表按照数字从大到小排序。

看答案

>>> lst = [28, 6, 99, 1, 46, 90, 17, 4, 19, 108, 71, 66, 24, 5, 17, 36, 92, 2, 64, 82, '捣乱', 3, 11, 75, 34, 62, 98]
>>> lst.remove('捣乱')
>>> lst.sort()
>>> lst.reverse()
>>> lst
[108, 99, 98, 92, 90, 82, 75, 71, 66, 64, 62, 46, 36, 34, 28, 24, 19, 17, 17, 11, 6, 5, 4, 3, 2, 1]

酱哦


如果还有什么问题或者发现了文章的错误,欢迎给我留言!邮箱可以随便乱写~

发表评论

电子邮件地址不会被公开。 必填项已用*标注