新聞中心
Python:s.sort([cmp[, key[, reverse]]])
s.sort([cmp[,?key[,?reverse]]])
創(chuàng)新互聯(lián)公司專注于川匯網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供川匯營銷型網(wǎng)站建設,川匯網(wǎng)站制作、川匯網(wǎng)頁設計、川匯網(wǎng)站官網(wǎng)定制、小程序設計服務,打造川匯網(wǎng)絡公司原創(chuàng)品牌,更為您提供川匯網(wǎng)站排名全網(wǎng)營銷落地服務。
意思是sort方法接受三個參數(shù),都可以省略,默認是升序排序。
第一個參數(shù)cmp 是 比較函數(shù),兩個參數(shù)(列表的元素)怎樣比較,對于整數(shù)這種內(nèi)置類型的比較,方法很直觀,但是對于自定義類型的比較,就要自己定義比較函數(shù)了,函數(shù)返回 0 ,就是兩個數(shù)相等,返回負數(shù),就是第一個參數(shù)小,第一個參數(shù)就排在第二個參數(shù)后面了。
第二個參數(shù) key 是比較列表元素的什么屬性。
第三個參數(shù)reverse是bool型,意思是是否反轉(zhuǎn)(倒序排序)
s?=?[1,?2,?3,?4,?5]
s.sort(reverse=True)
print?s
#或者直接reverse
s?=?[1,?2,?3,?4,?5]
s.reverse()
print?s
#cmp?函數(shù),兩個數(shù)倒過來比較
s?=?[1,?2,?3,?4,?5]
s.sort(cmp=lambda?a,?b:cmp(b,?a))
print?s
#key,把元素取反來比較
s?=?[1,?2,?3,?4,?5]
s.sort(key=lambda?a:-a)
print?s
再做下廣告:
Python學習網(wǎng)站:
Python在線教程:
Python Online Judge:
python 內(nèi)置排序函數(shù)使用
python內(nèi)置關于排序的工具主要有兩個一個是列表自帶的 sort() 方法,另外一個是 sorted() 函數(shù)。Python 列表內(nèi)置方法可以直接修改列表。而 sorted() 內(nèi)置函數(shù)從一個可迭代對象(列表,元組等都可以)構建一個新的排序列表。其函數(shù)原型分別如下:
對列表進行默認排序
從函數(shù)原型來看,可以看到兩者都具有兩個可選參數(shù),它們都必須指定為關鍵字參數(shù)。
key 指定帶有單個參數(shù)的函數(shù),用于從 iterable 的每個元素中提取用于比較的鍵 (例如 key=str.lower)。默認值為 None (直接比較元素)。 key 形參的值應該是個函數(shù)(或其他可調(diào)用對象),它接受一個參數(shù)并返回一個用于排序的鍵。
假設有其他類型的變量,比如一個自定義的類或者列表中又是一個列表。以官網(wǎng)例子為例有這樣一個列表,其元素為元組,
可以用以下方式按照年齡排序
類似的有自定義類
可以用如下方式進行排序
也可以顯示定義一個函數(shù),且只有一個參數(shù),返回用于排序的鍵,比如
總之就是定義一個函數(shù)返回一個用于排序的鍵,可以用lambda函數(shù)或者 def 定義都可以。
上面實現(xiàn)的簡單函數(shù)實際就是實現(xiàn)了返回一個有序結(jié)構的第 n 的元素,或者某個類中的某個屬性,因此 Python 提供了便利功能,使訪問器功能更容易,更快捷。operator 模塊有 itemgetter() 、 attrgetter() 函數(shù)。分別完成返回第 n 個元素,某個屬性功能。上面的排序可以用如下方式進行實現(xiàn)
在python2中,sort有一個 cmp 參數(shù),即用一個函數(shù)來自定義比較,在python3中這種方式被取消。為了繼承類似的用法,在 Python 3.2 中, functools.cmp_to_key() 函數(shù)被添加到標準庫中的 functools 模塊中。
這種作用先定義如何比較兩個變量,以上面的學生列表按照年齡排序為例
這種做法自定義比較函數(shù)接收兩個形參,返回比較結(jié)果(bool),而新式方法接受一個參數(shù),返回的是比較的鍵。
假設有字典 d = {'b':2, 'a':1,'c':8,'d':4} ,則可以通過以下方式對字典按照鍵和值進行排序
python中sort是什么意思
python中sort()函數(shù)用于對原列表進行排序,如果指定參數(shù),則使用比較函數(shù)指定的比較函數(shù)。
列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因為元組是不可修改的。
Python由荷蘭數(shù)學和計算機科學研究學會的吉多·范羅蘇姆于1990年代初設計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數(shù)據(jù)結(jié)構,還能簡單有效地面向?qū)ο缶幊獭?/p>
python 里面有沒有比較兩個列表的函數(shù)?
僅限沒有重復的情況。
gt;gt;gt; a=[1,2,3,4,5,6]
gt;gt;gt; b=[1,2,3]
gt;gt;gt; set(a)-set(b)
set([4, 5, 6])
如果要考慮重復的話,就有點麻煩了:
from math import fabs
def compare(list1,list2):
nbsp;nbsp;nbsp;dict1=dict()
nbsp;nbsp;nbsp;dict2=dict()
nbsp;nbsp;nbsp;total = list(set(list1+list2))
nbsp;nbsp;nbsp;dif = []
nbsp;nbsp;nbsp;for i in list1:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if str(i) in dict1:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dict1[str(i)] += 1
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dict1[str(i)] = 1
nbsp;nbsp;nbsp;for i in list2:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if str(i) in dict2:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dict2[str(i)] += 1
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dict2[str(i)] = 1
nbsp;nbsp;nbsp;for i in total:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if str(i) not in dict1 or str(i) not in dict2:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if str(i) in dict1:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;for num in range(int(dict1[str(i)])):
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dif.append(i)
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;for num in range(int(dict2[str(i)])):
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dif.append(i)
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else:
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;count = fabs(int(dict1[str(i)])-int(dict2[str(i)]))
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;for num in range(int(count)):
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dif.append(i)
nbsp;nbsp;nbsp;return dif
a=[1,1,1,1,2,3,4,4,4,5,6,7,8,9]
b=[2,2,2,2,3,4,4,4,4,5,6,7,8,9,10,11]
print compare(a,b)
文章名稱:python比較列表函數(shù) python列表函數(shù)sort
鏈接URL:http://fisionsoft.com.cn/article/hjpipi.html