Home » , » [Python學習筆記] python串列(list)的學習(六):串列進階的操作,串列的排序函數 sort、sorted、reverse 使用方法

[Python學習筆記] python串列(list)的學習(六):串列進階的操作,串列的排序函數 sort、sorted、reverse 使用方法

作者:軟體罐頭 | 發表日期:2019年1月4日 星期五

串列(list)是一種有序的資料結構,在工作上常常會需要將串列中的某些元素做排序處理,如成績排序、時間排序等等,python 也提供三種方法來排序串列元素:sortsortedreverse,透過這些方法可以更加方便操作串列,使用方法及其功能差異整理如下:

(1) sort 方法:sort方法是將串列元素從小至大排序,語法如下:
                    
                       串列變數名稱.sort(reverse=False)

                       說明:參數中reverse預設為False,可不寫,功能為由小至大排序,如果reverse設為True,則為由大至小排序

範例1:將分數由小至大排序

             score = [89,76,68,88,59,100,47,96]
             score.sort()

             執行結果:score 的值為 [47, 59, 68, 76, 88, 89, 96, 100]

範例2:將分數由大至小排序

             score = [89,76,68,88,59,100,47,96]
             score.sort(reverse=True)

             執行結果:score 的值為 [100, 96, 89, 88, 76, 68, 59, 47]

(2) sorted方法:sorted方法與sort方法的差異在於sort方法會變更原來變數的值,而sorted方法在執行過後不會變更原來變數值,所以要將結果存至另一變數,語法如下:

                          串列變數2=串列變數1.sorted(reverse=False)

                          說明:將串列變數1排序後的值存至串列變數2,參數中reverse預設為False,可不寫,功能為由小至大排序,如果reverse設為True,則為由大至小排序

範例3:將分數由小至大排序並且存至另一變數

             score1 = [89,76,68,88,59,100,47,96]
             score2 = sorted(score1)

             執行結果:score1 的值為 [89,76,68,88,59,100,47,96]
                               score2 的值為 [47, 59, 68, 76, 88, 89, 96, 100] 

範例4:將分數由大至小排序並且存至另一變數

             score1 = [89,76,68,88,59,100,47,96]
             score2 = sorted(score1,reverse=False)

             執行結果:score1 的值為 [89,76,68,88,59,100,47,96]
                               score2 的值為 [100, 96, 89, 88, 76, 68, 59, 47]

(3) reverse方法:由字義可知此方法會將串列反轉排序,有鏡射的意思,語法如下:

                            串列變數名稱.reverse()

範例5:將字串串列反轉排序

             week = ['星期日','星期一', '星期二','星期三','星期四','星期五', '星期六']
             week.reverse()

             執行結果:week 的值為 ['星期六', '星期五', '星期四', '星期三', '星期二', '星期一', '星期日']



完整程式碼如下:
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Fri Jan  4 11:39:05 2019
  4. @author: 軟體罐頭
  5. """
  6. print('範例 1:將分數由小至大排序')
  7. score = [89,76,68,88,59,100,47,96]   
  8. print('score 排序前 = ',score
  9. score.sort()
  10. print('score 排序後 = ',score
  11. print()
  12. print('範例 2:將分數由大至小排序')
  13. score = [89,76,68,88,59,100,47,96]   
  14. print('score 排序前 = ',score
  15. score.sort(reverse=True)
  16. print('score 排序後 = ',score
  17. print()
  18. print('範例3:將分數由小至大排序並且存至另一變數')
  19. score1 = [89,76,68,88,59,100,47,96
  20. print('score1 排序前 = ',score1
  21. score2 sorted(score1)
  22. print('score1 排序後 = ',score1
  23. print('score2 排序後 = ',score2
  24. print()
  25. print('範例4:將分數由大至小排序並且存至另一變數')
  26. score1 = [89,76,68,88,59,100,47,96
  27. print('score1 排序前 = ',score1
  28. score2 sorted(score1,reverse=True)
  29. print('score1 排序後 = ',score1
  30. print('score2 排序後 = ',score2
  31. print()
  32. print('範例5:將字串串列反轉排序')
  33. week = ['星期日','星期一''星期二','星期三','星期四','星期五''星期六']
  34. print('week 排序前 = ',week
  35. week.reverse()
  36. print('week 排序後 = ',week

執行結果如下:



分享 :
 
Copyright © 2013. 軟體罐頭 - All Rights Reserved
Blogger | Creating Website | Johny Template | Mas Template 技術提供