Python中的sort 方法

2021-07-27 23:57:08 字數 1951 閱讀 8437

python中的sort()和sorted():

一、sort()

列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因為元組是不可修改的。

lst

= [3, 6

, 2, 4]

lst.sort() # para: cmp, key, reverse

printlst # [2, 3, 4, 6]

?

如果需要乙個排序好的副本,通過分片操作y = x[:] 將列表x的元素全部拷貝給y,如果簡單的把x賦值給y:y = x,y和x還是指向同乙個列表,並沒有產生新的副本

lst

= [3, 6

, 2, 4]

lst_copy =

lst[:]

lst_copy.sort() # para: cmp, key, reverse

printlst

# [3, 6, 2, 4]

printlst_copy # [2, 3, 4, 6]

lst_copy =

lstlst_copy.sort()

printlst

# [2, 3, 4, 6]

?

1、可以定義自己的比較函式,然後通過引數傳遞給sort方法:

lst

= [3, 6

, 2, 4]

defmycmp1(x,y):  

# ascending order

returnx-y

defmycmp2(x,y):  

# descending order

returny-x

lst.sort(cmp

=mycmp1)

printlst # [2, 3, 4, 6]

lst.sort(cmp

=mycmp2)

printlst # [2, 3, 4, 6]

2\

2、還可以通過reverse引數實現降序排序:

2、key在使用時必須提供乙個排序過程總呼叫的函式:

lst

= ['ae'

, 'bcd'

, 'f']

lst.sort(key

=len)

printlst

# ['f', 'ae', 'bcd']

3、reverse實現降序排序,需要提供乙個布林值:

lst

= [3, 6

, 2, 4]

lst.sort(reverse

=true)

printlst

# [6, 4, 3, 2]

?

二、sorted

返回乙個有序的副本,並且型別總是列表,如下:

lst

= [3, 6

, 2, 4]

sorted_lst =

sorted(lst)

printsorted_lst # [2, 3, 4, 6]

printlst

# [3, 6, 2, 4]

python中的sort方法

一 基本形式 列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這樣的方法。由於元組是不可改動的。x 4,6,2,1,7,9 x.sort print x 1,2,4,6,7,9 假設須要乙個排序好的副本,同一時候保持原有列表不變。怎麼實現呢 x 4,6,2,1,7...

python中的sort方法

python中的sort 方法用於陣列排序,本文以例項形式對此加以詳細說明 一 基本形式列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因為元組是不可修改的。x 4,6,2,1,7,9 x.sort print x 1,2,4,6,7,9 如果需要乙個排...

python 中列表的sort方法

今天做畢設的時候,對 序列進行排序,用到了sort方法使用這樣的語句 sortedprice partialminprice.sort 然後後來想使用sortedprice的時候出現報錯,和報錯如下 for price in sortedprice pos 0 if price pb stoppos...