日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

pythonsort参数_Python sort()函数有哪些参数?

發(fā)布時間:2024/3/13 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pythonsort参数_Python sort()函数有哪些参数? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

sort和sorted的參數(shù)

sort和sorted都有三個關(guān)鍵字參數(shù):cmp、key和reverse。L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;

cmp(x, y) -> -1, 0, 1

sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

首選使用key和reverse,因為它們比等效的cmp工作much faster。

key應(yīng)該是一個函數(shù),它接受一個項并返回一個要比較和排序的值。reverse允許反轉(zhuǎn)排序順序。

使用key參數(shù)

您可以使用operator.itemgetter作為一個關(guān)鍵參數(shù)來按元組中的第二個、第三個等項排序。

示例>>> from operator import itemgetter

>>> a = range(5)

>>> b = a[::-1]

>>> c = map(lambda x: chr(((x+3)%5)+97), a)

>>> sequence = zip(a,b,c)

# sort by first item in a tuple

>>> sorted(sequence, key = itemgetter(0))

[(0, 4, 'd'), (1, 3, 'e'), (2, 2, 'a'), (3, 1, 'b'), (4, 0, 'c')]

# sort by second item in a tuple

>>> sorted(sequence, key = itemgetter(1))

[(4, 0, 'c'), (3, 1, 'b'), (2, 2, 'a'), (1, 3, 'e'), (0, 4, 'd')]

# sort by third item in a tuple

>>> sorted(sequence, key = itemgetter(2))

[(2, 2, 'a'), (3, 1, 'b'), (4, 0, 'c'), (0, 4, 'd'), (1, 3, 'e')]

解釋

序列可以包含任何對象,甚至不可比較,但是如果我們可以定義一個函數(shù),該函數(shù)可以為每個項生成可比較的內(nèi)容,那么我們可以在key參數(shù)中將該函數(shù)傳遞給sort或sorted。

尤其是itemgetter,創(chuàng)建這樣一個函數(shù),從操作數(shù)中獲取給定項。其文檔中的一個示例:After, f=itemgetter(2), the call f(r) returns r[2].

小型基準(zhǔn),key與cmp

只是出于好奇,key和cmp性能相比,越小越好:>>> from timeit import Timer

>>> Timer(stmt="sorted(xs,key=itemgetter(1))",setup="from operator import itemgetter;xs=range(100);xs=zip(xs,xs);").timeit(300000)

6.7079150676727295

>>> Timer(stmt="sorted(xs,key=lambda x:x[1])",setup="xs=range(100);xs=zip(xs,xs);").timeit(300000)

11.609490871429443

>>> Timer(stmt="sorted(xs,cmp=lambda a,b: cmp(a[1],b[1]))",setup="xs=range(100);xs=zip(xs,xs);").timeit(300000)

22.335839986801147

因此,使用key排序的速度似乎至少是使用cmp排序的速度的兩倍。使用itemgetter而不是lambda x: x[1]會使排序更快。

總結(jié)

以上是生活随笔為你收集整理的pythonsort参数_Python sort()函数有哪些参数?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。