在我们创建的列表中,列表元素的排列顺序常常是无法预测的。因为我们并非总是能控制用户提供数据的顺序。这虽然在大多数情况下是不可避免的。但你经常需要以特定的顺序呈现信息。有时候,你希望保留列表元素最初的排列顺序。而有时候又需要调整排列顺序。
使用sort()方法对列表进行永久排序
示例代码:
names = ['c','d','e','g','f',' a','b']
print ( names )
names.sort() #列表名对方法sort()进行调用
print (names)
输出结果如下:
['c', 'd', 'e', 'g', 'f', ' a', 'b']
[' a', 'b', 'c', 'd', 'e', 'f', 'g']
[Finished in 0.1s]
还可以按照字母顺序相反的顺序排列列表元素。为此,只需向sort()方法传递参数 reverse = True
示例代码:
names = ['c','d','e','g','f',' a','b']
print ( names )
names.sort(reverse = True)
print (names)
输出结果:
['c', 'd', 'e', 'g', 'f', ' a', 'b']
['g', 'f', 'e', 'd', 'c', 'b', ' a']
[Finished in 0.0s]
使用函数sorted()对列表进行临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现他们,可使用函数sorted()。函数sorted()让你能按照特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
示例代码:
names = ['c','d','e','g','f',' a','b']
print ( names ) #先看一下列表原始的排序方式
print ( sorted(names) ) #输出临时的特定排列顺序
print ( names ) #验证一下列表原始的排列顺序没有改变
输出结果如下:
['c', 'd', 'e', 'g', 'f', ' a', 'b']
[' a', 'b', 'c', 'd', 'e', 'f', 'g']
['c', 'd', 'e', 'g', 'f', ' a', 'b']
[Finished in 0.0s]
如果我们想临时输出,按照字母降序排练的临时输出,那我们向sorted()函数传递一个 reverse = True即可
代码如下:
names = ['c','d','e','g','f',' a','b']
print ( names ) #先看一下列表原始的排序方式
print ( sorted ( names , reverse = True) ) #输出临时的降序特定排列顺序
print ( names ) #验证一下列表原始的排列顺序没有改变
输出结果如下:
['c', 'd', 'e', 'g', 'f', ' a', 'b']
['g', 'f', 'e', 'd', 'c', 'b', ' a']
['c', 'd', 'e', 'g', 'f', ' a', 'b']
[Finished in 0.0s]
倒着打印列表
要反转列表元素的排列顺序,可使用方法reverse()。
代码示例如下:
names = ['c','d','e','g','f',' a','b']
print ( names ) #先看一下列表原始的排序方式
names.reverse()
print ( names ) #验证一下列表原始的排列顺序已经改变
输出结果如下:
['c', 'd', 'e', 'g', 'f', ' a', 'b']
['b', ' a', 'f', 'g', 'e', 'd', 'c']
[Finished in 0.1s]
注意:
reverse()不是指,按照与字母顺序相反的顺序排列列表元素。而是反转列表元素的排列顺序。
reverse()方法是永久性地修改列表元素的排列顺序。如果想恢复原来的排列顺序,只需再执行一次reverse()方法即可。
确定列表长度
使用函数len()可以快速知道列表长度,也就是知道列表包含多少个元素。
示例代码:
names = ['c','d','e','g','f',' a','b']
print ( names ) #先看一下列表原始的排序方式
print ( len(names)) #统计列表元素的个数
输出结果:
['c', 'd', 'e', 'g', 'f', ' a', 'b']
7
[Finished in 0.0s]
使用列表时避免索引错误
示例代码:
names = ['c','d','e','g','f',' a','b']
print ( names[8] ) #这个列表中的索引最大是6,那我们使用一个8试试
输出结果:
IndexError: list index out of range
***这个意思就是说:列表索引超出范围***
注意:
发生列表索引错误时,我们可以先尝试将列表长度打印出来,我们看看列表长度是不是跟我们认为的长度一致。就很快找出我们的问题所在。