Python中对列表的组织排序

在我们创建的列表中,列表元素的排列顺序常常是无法预测的。因为我们并非总是能控制用户提供数据的顺序。这虽然在大多数情况下是不可避免的。但你经常需要以特定的顺序呈现信息。有时候,你希望保留列表元素最初的排列顺序。而有时候又需要调整排列顺序。

使用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 
***这个意思就是说:列表索引超出范围***

注意:
发生列表索引错误时,我们可以先尝试将列表长度打印出来,我们看看列表长度是不是跟我们认为的长度一致。就很快找出我们的问题所在。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章