久久96国产精品久久久-久久发布国产伦子伦精品-久久精品国产精品青草-久久天天躁夜夜躁狠狠85麻豆

技術員聯盟提供win764位系統下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當前位置:主頁 > 教程 > 服務器類 >

Python列表項的排序技巧

來源:技術員聯盟┆發布時間:2017-10-02 18:40┆點擊:

  典型代碼1:

  data_list = [6, 9, 1, 3, 0, 10, 100, -100]

  data_list.sort()

  print(data_list)

  輸出1:

  [-100, 0, 1, 3, 6, 9, 10, 100]

  典型代碼2:

  data_list = [6, 9, 1, 3, 0, 10, 100, -100]

  data_list_copy = sorted(data_list)

  print(data_list)

  print(data_list_copy)

  輸出2:

  [6, 9, 1, 3, 0, 10, 100, -100]

  [-100, 0, 1, 3, 6, 9, 10, 100]

  應用場景

  需要對列表中的項進行排序時使用。其中典型代碼1是使用的列表自身的一個排序方法sort,這個方法自動按照升序排序,并且是原地排序,被排序的列表本身會被修改;典型代碼2是調用的內置函數sort,會產生一個新的經過排序后的列表對象,原列表不受影響。這兩種方式接受的參數幾乎是一樣的,他們都接受一個key參數,這個參數用來指定用對象的哪一部分為排序的依據:

  data_list = [(0, 100), (77, 34), (55, 97)]

  data_list.sort(key=lambda x: x[1]) # 我們想要基于列表項的第二個數進行排序

  print(data_list)

  >>> [(77, 34), (55, 97), (0, 100)]

  另外一個經常使用的參數是reverse,用來指定是否按照倒序排序,默認為False:

  data_list = [(0, 100), (77, 34), (55, 97)]

  data_list.sort(key=lambda x: x[1], reverse=True) # 我們想要基于列表項的第二個數進行排序,并倒序

  print(data_list)

  >>> [(0, 100), (55, 97), (77, 34)]

  帶來的好處

  1. 內置的排序方法,執行效率高,表達能力強,使代碼更加緊湊,已讀

  2. 靈活的參數,用于指定排序的基準,比在類似于Java的語言中需要寫一個comparator要方便很多

  其它說明

  1. sorted內置函數比列表的sort方法要適用范圍更廣泛,它可以對除列表之外的可迭代數據結構進行排序;

  2. list內置的sort方法,屬于原地排序,理論上能夠節省內存的消耗;