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...