- 列表方法
在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]
酱哦
如果还有什么问题或者发现了文章的错误,欢迎给我留言!邮箱可以随便乱写~