python中自定義排序函式sorted

2021-09-25 09:27:23 字數 732 閱讀 8468

接收乙個比較函式來實現自定義排序,比較函式的定義是:傳入兩個帶比較的函式x,y ,如果x 應該排在y的前面,返回-1 ,如果x 應該排在 y 的後面,返回1 ,如果 x 和 y 相等,返回0

舉個例子:

實現倒序排序

def reversed_cmp(x, y):

if x > y:

return -1

if x < y:

return 1

return 0

sorted([36, 5, 12, 9, 21], reversed_cmp)

執行結果:

[36, 21, 12, 9, 5]
再舉個例子:

對字串排序時,有時候忽略大小寫排序更符合習慣。請利用sorted()高階函式,實現忽略大小寫排序的演算法。

def cmp_ignore_case(s1, s2):

u1 = s1.upper()

u2 = s2.upper()

if u1u2:

return 1

if u1==u2:

return 0

print sorted(['bob', 'about', 'zoo', 'credit'], cmp_ignore_case)

執行結果:['about', 'bob', 'credit', 'zoo']

python中自定義排序函式

python內建的 sorted 函式可對list進行排序 sorted 36,5,12,9,21 5,9,12,21,36 但 sorted 也是乙個高階函式,它可以接收乙個比較函式來實現自定義排序,比較函式的定義是,傳入兩個待比較的元素 x,y,如果 x 應該排在 y 的前面,返回 1,如果 x...

python 自定義排序函式

自定義排序函式 python內建的 sorted 函式可對list進行排序 sorted 36,5,12,9,21 5,9,12,21,36 但 sorted 也是乙個高階函式,它可以接收乙個比較函式來實現自定義排序,比較函式的定義是,傳入兩個待比較的元素 x,y,如果 x 應該排在 y 的前面,返...

自定義排序函式

python 內建的sorted 函式可對 list 進行排序 sorted 36,5,12,9,21 5,9,12,21,36 但 sorted 也是乙個高階函式,它可以接收乙個比較函式來實現自定義排序,比較函式的定義是,傳入兩個待比較的元素 x,y 如果x 應該排在 y 的前面,返回 1,如果 ...