Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])
这些代码返回'specialized'。这种语法很有用,因为你经常需要在不知道列表长度的情况下访问最后的元素。这种约定也适用于其他负数索引,例如,索引-2
返回倒数第二个列表元素,索引-3
返回倒数第三个列表元素,以此类推。
每当需要访问最后一个列表元素时,都可使用索引-1。这在任何情况下都行之有效,即便你最后一次访问列表后,其长度发生了变化
仅当列表为空时,这种访问最后一个元素的方式才会导致错误
在列表末尾添加元素
append()方法
在列表中插入元素
使用insert()方法可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。
motorcycles = ['honda', 'yamaha', 'suzuki']
❶ motorcycles.insert(0, 'ducati')
print(motorcycles)
在这个示例中,值'ducati'
被插入到了列表开头(见❶);方法insert()
在索引0
处添加空间,并将值'ducati'
存储到这个地方。这种操作将列表中既有的每个元素都右移一个位置:
['ducati', 'honda', 'yamaha', 'suzuki']
使用del语句删除元素
使用del
可删除任何位置处的列表元素,条件是知道其索引。使用del
语句将值从列表中删除后,你就无法再访问它了。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
❶ del motorcycles[0]
print(motorcycles)
❶ 处的代码使用del
删除了列表motorcycles
中的第一个元素——'honda'
:
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
使用方法pop()删除元素
有时候,你要将元素从列表中删除,并接着使用它的值。方法pop()
可删除列表末尾的元素,并让你能够接着使用它。
❶ motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
❷ popped_motorcycle = motorcycles.pop()
❸ print(motorcycles)
❹ print(popped_motorcycle)
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki
弹出列表中任何位置处的元素
实际上,你可以使用pop()
来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
如果你不确定该使用del
语句还是pop()
方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del
语句;如果你要在删除元素后还能继续使用它,就使用方法pop()
。
根据值删除元素
不知道要从列表中删除的值所处的位置。如果只知道要删除的元素的值,可使用方法remove()
。
使用remove()
从列表中删除元素时,也可接着使用它的值。
注意 方法remove()
只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。你将在第7章学习如何这样做。
方法sort()
对列表进行永久性排序
按与字母顺序相反的顺序排列列表元素,为此,只需向sort()
方法传递参数reverse=True
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)
使用函数sorted()
对列表进行临时排序
注意,调用函数sorted()
后,列表元素的排列顺序并没有变。如果你要按与字母顺序相反的顺序显示列表,也可向函数sorted()
传递参数reverse=True
。
注意 在并非所有的值都是小写时,按字母顺序排列列表要复杂些。决定排列顺序时,有多种解读大写字母的方式,要指定准确的排列顺序,可能比我们这里所做的要复杂。然而,大多数排序方式都基于本节介绍的知识。
倒着打印列表
要反转列表元素的排列顺序,可使用方法reverse()
。注意,reverse()
不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序。方法reverse()
永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse()
即可。
确定列表的长度
使用函数len()
可快速获悉列表的长度
>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> len(cars)
4
Python编程:从入门到实践. Eric Matthes (作者) 袁国忠(译者)