zoukankan      html  css  js  c++  java
  • 第三章 列表简介(二)

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

     


  • 相关阅读:
    Oracle10g之SGA与PGA分配建议
    Oracle 用户权限管理方法
    快速部署RDA Remote Diagnostic Agent
    转 :Oracle 数据库信息收集工具RDA使用指南 Oracle 数据库信息收集工具RDA使用指南
    AIX6.1下配置Nmon性能工具
    优化 AIX 6.1 的性能
    使用Oracle外部表来查询分析警告日志
    qq
    Java字符串2
    java字符串
  • 原文地址:https://www.cnblogs.com/gengcx/p/6613700.html
Copyright © 2011-2022 走看看