为什么要改动列表元素?
我们创建的大多数列表都将是动态的,这意味着列表创建后,将随着程序的运行增删元素。 例如,你创建一个游戏,要求玩家射杀从天而降的外星人;为此,可在开始时将一些外星人存储在列表中,然后每当有外星人被射杀时,都将其从列表中删除,而每次有新的外星人出现在屏幕上时,都将其添加到列表中。在整个游戏运行期间,外星人列表的长度将不断变化。
修改列表元素
motorcycles = ['honda','yamaha','suzuki']print(motorcycles)
motorcycles[0]= 'ducati'
print(motorcycles)
输出
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
根据索引值改变元素,先定义一个列表,列表中第一个元素值‘honda’,然后将第一个元素的值改为‘ducati’,可以发现第一个元素变了,其余元素没有改变。
添加列表元素
在列表末尾添加元素
motorcycles = ['honda','yamaha','suzuki']print(motorcycles)
motorcycles.append('ducati')print(motorcycles)
输出
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
方法append():追加,可以看到列表中添加了元素‘ducati’,位于列表末尾。
我们可以创建一个空列表,然乎向里面添加数据,这也是最常见的方式,因为要等程序运行后,才知道用户要在程序存储哪些数据。
motorcycles =[]
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')print(motorcycles)
输出
['honda', 'yamaha', 'suzuki']
在列表中插入元素
使用方法insert()在列表任何位置添加元素,需要指定索引,其余元素依次后移
motorcycles = ['honda','yamaha','suzuki']
motorcycles.insert(0,'ducati')print(motorcycles)
输出
['ducati', 'honda', 'yamaha', 'suzuki']
删除列表元素
使用del语句删除列表中的元素
使用del语句删除元素,可以删除任何位置的列表元素。前提是知道删除的元素在列表中的位置!!!
motorcycles = ['honda','yamaha','suzuki']delmotorcycles[0]print(motorcycles)
输出
['yamaha', 'suzuki']
有时候,你要将元素从列表中删除,并接着使用它的值。例如,在Web应用程序中,你可能要将用户从活跃成员列表中删除,并将其加入到非活跃成员列表中。
使用pop()删除列表元素
方法pop()可删除列表末尾的元素,并让你能够接着使用它。 术语弹出(pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
motorcycles = ['honda','yamaha','suzuki']print(motorcycles)
poped_motorcycles=motorcycles.pop()print(motorcycles)print(poped_motorcycles)
输出
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki
我们首先定义并打印了列表motorcycles,接下来,我们从这个列表中弹出一个值,并将其存储到变量popped_motorcycle 中。然后我们打印这个列表,以核实从其中删除了一个值。最后,我们打印弹出的值,以证明我们依然能够访问被删除的值。输出表明,列表末尾的值'suzuki' 已删除,它现在存储在变量popped_motorcycle中。
删除列表中任意位置的元素
motorcycles = ['honda','yamaha','suzuki']
first_owned=motorcycles.pop(0)print(first_owned)
输出
honda
如果你不确定该使用del 语句还是pop() 方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del 语句;如果你要在删除元素后还能继续使用它,就使用方法pop() 。
根据值删除元素,remove()
有时候,你不知道要从列表中删除的值所处的位置。 如果你只知道要删除的元素的值,可使用方法remove()
motorcycles = ['honda','yamaha','suzuki','ducati']print(motorcycles)
motorcycles.remove('ducati')print(motorcycles)
输出
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。