python中sorted()函數解析

sorted() 函數對所有可迭代的對象進行排序操作。

sort 與 sorted 區別:

sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。

list 的 sort 方法返回的是對已經存在的列表進行操作,無返回值,而內建函數 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操作。

語法

sorted 語法:

sorted(iterable, key=None, reverse=False)

參數說明:

  • iterable -- 可迭代對象。
  • key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。
  • reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。

返回值

返回重新排序的列表。

解析:

>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})#按鍵排序
[1, 2, 3, 4, 5]
>>> sorted(('981276345'))
['1', '2', '3', '4', '5', '6', '7', '8', '9']

排序字典好像只返回鍵的排列列表,不過影響不大,排序字符串返回每個字符的列表,也沒什麼。這樣看來只有在拍序列表時纔不會改變。

b = {1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}#按值排序
a=sorted(b, key=lambda x:b[x])
print(a)
結果:[5, 2, 3, 1, 4]

字典本身沒有順序概念,所有返回鍵的排序list

foo=[('zs',19),(['ll',54]),('wa',17),('df',23)]
a=sorted(foo,key=lambda x:x[1])
print(a)
結果:[('wa', 17), ('zs', 19), ('df', 23), ['ll', 54]]

發現:如上,lambda是一個匿名參數返回迭代對象的下標爲1的值,我們可以這樣認爲sorted將迭代對象每個可迭代對象依次傳入lambda,根據lambda的返回再進行排序。

如果改變x的正負值:

foo=[('zs',19),(['ll',54]),('wa',17),('df',23)]
a=sorted(foo,key=lambda x:-x[1])
print(a)
#學習中遇到問題沒人解答?小編創建了一個Python學習交流羣:711312441
結果:[['ll', 54], ('df', 23), ('zs', 19), ('wa', 17)]

降序排列

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