第三章 列表简介(二)

3.3 列表组织

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

3.3.1 使用方法sort()对列表进行永久性排序

    使用方法sort()让我们较为轻松地对列表进行排序。假如我们有一个汽车列表,并让其中的汽车按字母顺序排列。为简化这项任务,我们假设该列表中的所有值都是小写的。

 sort(...)
 |      L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*
 |  
方法sort()中,reverse的含义是颠倒,反转,倒转的含义,就是把列表的顺序倒序过来,首先对列表进行排序,当参数reverse = True时,表示,让列表进行倒序,默认情况下是正序,按照字母有小到大的顺序进行排序,a--z,A--Z

cars = ["bmw","audi","toyota","subaru"]
cars.sort()
print(cars)
cars.sort(reverse = True)
print(cars)
运行结果:

['audi', 'bmw', 'subaru', 'toyota']
['toyota', 'subaru', 'bmw', 'audi']

从运行结果中看,当sort()方法中参数reverse进行设置后,列表进行了倒序排序,首先进行排序,然后反转过来。

3.3.2 使用函数sorted()对列表进行临时排序

    要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()让我们能够按照特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。

cars = ["bmw","audi","toyota","subaru"]
my_cars = sorted(cars)
own_cars = sorted(cars,reverse = True)
print(own_cars)
print(my_cars)
print(cars)


从中可以看出,当使用函数进行排序的时候,只是临时的排序,并没有改变列表原有的顺序,而且,sorted()函数也可以有第二参数,能够实现倒序的方
法。
注意,调用函数sorted()后,列表元素的排列顺序并没有变。如果我们要按照与字母顺序相反的顺序显示列表,也可向函数sorted()传递参数reverse =
True.
3.3.3 倒着打印列表
要反转列表元素的排列顺序,可使用方法reverse()。假设汽车列表的是按购买时间排列的,可轻松地按相反的顺序排列其中的汽车:
 reverse(...)
 |      L.reverse() -- reverse *IN PLACE*
从方法中可以看出,主要是对列表进行反转,把顺序进行颠倒,而不是进行排序,没有改变排列的顺序。
cars = ["bmw","Zudi","toyota","subaru"]
print(cars)
#对列表进行倒序,但是没有进行排序,只是反转
cars.reverse()
print(cars)
运行结果:
['bmw', 'Zudi', 'toyota', 'subaru']
['subaru', 'toyota', 'Zudi', 'bmw']
从运行结果可以看出,reverse()方法,只是对列表进行反转,没有对列表进行排序。不是指按与字母顺序相反的顺序排列列表元素,而只是反转列
表元素的排列顺序.
方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次进行reverse()方法即可。

3.3.4 确定列表的长度

使用函数len()可快速获悉列表的长度。在下面的实例中,列表包含4个元素,因此其长度为4,:
cars = ["bmw","Zudi","toyota","subaru"]
num = len(cars)
print(num)
运行结果:
4
在我们需要完成如下任务时,len()函数很有用:确定还有多少外星人未被射杀,需要管理多少项可视化数据,网站有多少注册用户等。

动手试一试
3-8 放眼世界:
想出至少5个你渴望去旅游的地方。
1、将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的;
2、按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python列表;
3、使用sorted()按字母顺序打印这个列表,同时不要修改它;
4、再次打印该列表,合适排列顺序未变;
5、使用sorted()函数按与字母相反的顺序打印这个列表,同时不要修改它;
6、再次打印该列表,核实排列顺序未变;
7、使用reverse()修改列表元素的排列顺序。打印该列表,合适排列顺序确实变了;
8、使用reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序;
9、使用sort()方法修改列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了;
10、使用sort()方法修改列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。
cities = ["paris","tokyo","seoul","london","new york"]
#首先定义了一个列表,包含了所想去的城市
print(cities)
#排列方法主要有三种,考虑使用那中方法而已
my_cities = sorted(cities)
print(my_cities)
print(cities)
print(sorted(cities,reverse = True))
print(cities)
cities.reverse()
print(cities)
cities.reverse()
print(cities)
cities.sort()
print(cities)
cities.sort(reverse = True)
print(cities)
运行结果:
['paris', 'tokyo', 'seoul', 'london', 'new york']
['london', 'new york', 'paris', 'seoul', 'tokyo']
['paris', 'tokyo', 'seoul', 'london', 'new york']
['tokyo', 'seoul', 'paris', 'new york', 'london']
['paris', 'tokyo', 'seoul', 'london', 'new york']
['new york', 'london', 'seoul', 'tokyo', 'paris']
['paris', 'tokyo', 'seoul', 'london', 'new york']
['london', 'new york', 'paris', 'seoul', 'tokyo']
['tokyo', 'seoul', 'paris', 'new york', 'london']
排序的方法有三种,第一种是方法sort(reverse = True/False),默认没有参数的话是False,排序是对列表进行永久性的排序,因为这是一种方法
的排序,可以正序,也可以倒序排序;函数sorted(),函数sorted()是对列表进行临时性的排序,只是临时的进行排序即可,没有修改列表原始的排
列顺序;reverse()方法是对列表进行反转,就是把列表原来的顺序反转过来,所以在具体排序的时候,要根据目的选择使用哪一种排序方法,如果只
是临时排序就使用sorted()函数,如果永久性的进行排序则使用sort()方法,如果是反转列表的顺序,则使用reverse()方法。

3.4 使用列表时避免索引错误
刚开始使用列表时,经常会遇到一种错误,就是索引错误。假设我们有一个包含三个元素的列表,却要求获取第四个元素,这将导致索引错误

3.5 小结:
在本章中,我们学习了:列表是什么以及任何使用其中的元素;如何定义列表以及如何增删元素;如何对列表进行永久性排序,以及如何为展示
列表进行临时排序;如何确定列表的长度,以及在使用列表时如何避免索引错误。

 


原文地址:https://www.cnblogs.com/gengcx/p/6613700.html