Python编程入门到实践—列表篇(二)
组织列表
在你创建的列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据的顺序。这虽然在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信息。有时候,你希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。
使用方法sort()对列表进行永久性排序
Python方法sort()让你能够较为轻松地对列表进行排序。假设你有一个cars列表,炳耀让其中的cars按字母顺序排列。为简化这项任务,我们假设该列表中的所有值都是小写的。
Cars.py
方法sort()(如下图)永久性地修改了列表元素的排列顺序。现在,cars是按字母顺序排列的,再也无法回复到原来的排列顺序:
也可以按与字母顺序相反的顺序排序列表元素,为此,只需向sort()方法传递参数reverse=True,同样,对列表元素排列顺序的修改是永久性的。(如下图的输出结果)
要保留列表元素原来的排序顺序,同时以特定的顺序呈现它们,可使用sorted()。函数sorted()让你能够按塔顶顺序显示列表元素,同时不影响他们在列表中的原始排列顺序。
我们首先按原始顺序打印列表(见1),再按字母顺序显示该列表(见2)。以特定顺序显示列表后,我们进行核实,确认列表元素的排列顺序与以前相同(见3)。
注意:调用函数sorted()后,列表元素的排列顺序并没有变。(如上图)如果你要按与字母顺序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True。
要反转列表元素的排列顺序,可使用方法reverse()。
注意:reverse()不是按与字母顺序相反的顺序排列列表元素,而只是翻转列表元素的排列顺序。
方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse()即可。
使用函数len()可快速获取列表的长度。注意:Python计算列表元素数时从1开始,因此确认列表长度时,你应该不会遇到差一错误。
刚开始使用列表时,经常会遇到一种错误。假设你有一个包含三个元素的列表,却要求获取第四个元素,这种导致索引错误:(如下图)
Python试图向你提供位于索引3处的元素,但它搜索bicycleshi时,却发现索引3处没有元素。索引差一的特征,这种错误很常见。有些人从1开始数,因此以为第三个元素的索引为3;但在Python中,第三个元素的索引为2,因为索引是从0开始的。
索引错误意味着Python无法理解你指定的索引。程序发生索引错误时,请尝试将你指定的索引减1,然后再次运行程序,看看结果是否正确。
索引-1总是返回最后一个列表元素,这里为值‘bluegogo’(如下图)
当列表为空时,访问最后一个元素的方式会导致错误,列表bicycle不包含任何元素,因此Python返回一条索引错误消息(如下图)
通过两篇列表中,你学习了:列表是什么以及如何使用其中的元素;如何定义列表以及如何增删元素;如何对列表进行永久性排序;以及如何为展示列表而进行临时排序;如何确定列表的长度;以及在使用列表时如何避免索引错误;