python基础——列表02
从列表中删除元素
你经常需要从列表中删除一个或多个元素。例如,玩家将一个外星人消灭后,你很可能要将其从存活的外星人列表中删除;
当用户在你创建的 Web 应用程序中注销账户时,你需要将该用户从活动用户列表中删除。你可以根据位置或值来删除列表中的元素。
使用 del 语句删除元素
如果知道要删除的元素在列表中的位置,可使用 del 语句:
1 | motorcycles = ['honda', 'yamaha', 'suzuki'] |
这里使用 del 语句删除了列表 motorcycles 中的第一个元素 ‘honda’:
1 | ['honda', 'yamaha', 'suzuki'] |
使用 del 可删除任意位置的列表元素,只需要知道其索引即可。例如,下面演示了如何删除列表 motorcycles 中的第二个元素 ‘yamaha’:”
1 | “motorcycles = ['honda', 'yamaha', 'suzuki'] |
下面的输出表明,已经将第二款摩托车从列表中删除了:
1 | ['honda', 'yamaha', 'suzuki'] |
在这两个示例中,使用 del 语句将值从列表中删除后,你就无法再访问它了
使用 pop() 方法删除元素
pop() 方法删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
下面来从列表 motorcycles 中弹出一款摩托车:
1 | ❶ motorcycles = ['honda', 'yamaha', 'suzuki'] |
首先定义并打印了列表 motorcycles(见❶)。接下来,从这个列表中弹出一个值,并将其赋给变量 popped_motorcycle(见❷)
然后打印这个列表,以核实从中删除了一个值(见❸)。最后打印弹出的值,以证明依然能够访问被删除的值(见❹)。
输出表明,列表末尾的值 ‘suzuki’ 已删除,它现在被赋给了变量 popped_motorcycle:
1 | ['honda', 'yamaha', 'suzuki'] |
删除列表中任意位置的元素
1 | 实际上,也可以使用 pop() 删除列表中任意位置的元素,只需要在括号中指定要删除的元素的索引即可。 |
首先弹出列表中的第一款摩托车,然后打印一条有关这辆摩托车的消息。输出是一个简单的句子,描述了我购买的第一辆摩托车:
1 | The first motorcycle I owned was a Honda. |
别忘了,每当你使用 pop() 时,被弹出的元素就不再在列表中了。
根据值删除元素
有时候,你不知道要从列表中删除的值在哪个位置。如果只知道要删除的元素的值,可使用 remove() 方法。
假设要从列表 motorcycles 中删除值 ‘ducati’:
1 | motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] |
remove() 方法让 Python 确定 ‘ducati’ 出现在列表的什么地方,并将该元素删除:
1 | ['honda', 'yamaha', 'suzuki', 'ducati'] |
使用 sort() 方法对列表进行永久排序
Python 方法 sort() 让你能够较为轻松地对列表进行排序。假设你有一个汽车列表,并要让其中的汽车按字母顺序排列。
为了简化这项任务,假设该列表中的所有值都是全小写的。
1 | cars = ['bmw', 'audi', 'toyota', 'subaru'] |
sort() 方法能永久地修改列表元素的排列顺序。现在,汽车是按字母顺序排列的,再也无法恢复到原来的排列顺序:
1 | ['audi', 'bmw', 'subaru', 'toyota'] |
还可以按与字母顺序相反的顺序排列列表元素,只需向 sort() 方法传递参数 reverse=True 即可。
下面的示例将汽车列表按与字母顺序相反的顺序排列:
1 | cars = ['bmw', 'audi', 'toyota', 'subaru'] |
同样,对列表元素排列顺序的修改也是永久的:
1 | ['toyota', 'subaru', 'bmw', 'audi'] |
使用 sorted() 函数对列表进行临时排序
要保留列表元素原来的排列顺序,并以特定的顺序呈现它们,可使用 sorted() 函数。
sorted() 函数让你能够按特定顺序显示列表元素,同时不影响它们在列表中的排列顺序。
下面尝试对汽车列表调用这个函数。
1 | cars = ['bmw', 'audi', 'toyota', 'subaru'] |
首先按原始顺序打印列表(见❶),再按字母顺序显示该列表(见❷)。以特定顺序显示列表后进行核实,确认列表元素的排列顺序与以前相同(见❸)。
1 | Here is the original list: |
注意,在调用 sorted() 函数后,列表元素的排列顺序并没有变(见❶)。如果要按与字母顺序相反的顺序显示列表,也可向 sorted() 函数传递参数 reverse=True。
确定列表的长度
使用 len() 函数可快速获悉列表的长度。在下面的示例中,列表包含 4 个元素,因此其长度为 4:
1 | cars = ['bmw', 'audi', 'toyota', 'subaru'] |