自定義排序函式

2021-07-08 09:54:34 字數 1189 閱讀 6527

python

內建的sorted()函式可對

list

進行排序:

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

[5, 9, 12, 21, 36] 但

sorted()也是乙個高階函式,它可以接收乙個比較函式來實現自定義排序,比較函式的定義是,傳入兩個待比較的元素

x, y

如果x

應該排在

y 的前面,返回

-1,如果

x 應該排在

y 的後面,返回

1。如果x 和

y 相等,返回

0。因此,如果我們要實現倒序排序,只需要編寫乙個

reversed_cmp

函式:defreversed_cmp(x, y):

if x > y:

return -1

if x < y:

return 1

return 0

這樣,呼叫

sorted()

並傳入reversed_cmp

就可以實現倒序排序:

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

[36, 21, 12, 9,5]

sorted()

也可以對字串進行排序,字串預設按照

ascii

大小來比較:

>>>sorted(['bob', 'about', 'zoo', 'credit'])

['credit','zoo', 'about', 'bob']

'zoo'

排在'about'

之前是因為

'z'的

ascii

碼比'a'

小。任務

對字串排序時,有時候忽略大小寫排序更符合習慣。請利用

sorted()

高階函式,實現忽略大小寫排序的演算法。

輸入:['bob', 'about', 'zoo','credit']

輸出:['about', 'bob', 'credit', 'zoo']

自定義排序函式

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

自定義排序函式

方法一 function show str elseif str i k x show x y show y return array merge x array k y else a 2345283094 arr str split a 1 arr1 show arr arr2 implode a...

lua自定義排序函式

說一下lua的table庫中比較常用的排序函式 table.sort 第乙個引數代表要進行排序的table,第二個引數是可選的,如果沒有第二個引數,那麼這個函式就會將table元素從小到大進行排序,我主要來說一下第二個引數。第二個引數是函式型別,這個函式接收兩個table元素,如果希望第乙個引數在排...