国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中的sort()方法使用基礎(chǔ)教程

2020-02-23 04:14:04
字體:
供稿:網(wǎng)友

一、基本形式

sorted(iterable[, cmp[, key[, reverse]]])iterable.sort(cmp[, key[, reverse]])

 參數(shù)解釋:

 (1)iterable指定要排序的list或者iterable,不用多說;

 (2)cmp為函數(shù),指定排序時(shí)進(jìn)行比較的函數(shù),可以指定一個(gè)函數(shù)或者lambda函數(shù),如:

       students為類對(duì)象的list,沒個(gè)成員有三個(gè)域,用sorted進(jìn)行比較時(shí)可以自己定cmp函數(shù),例如這里要通過比較第三個(gè)數(shù)據(jù)成員來排序,代碼可以這樣寫:

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]sorted(students, key=lambda student : student[2])

(3)key為函數(shù),指定取待排序元素的哪一項(xiàng)進(jìn)行排序,函數(shù)用上面的例子來說明,代碼如下:

sorted(students, key=lambda student : student[2])

       key指定的lambda函數(shù)功能是去元素student的第三個(gè)域(即:student[2]),因此sorted排序時(shí),會(huì)以students所有元素的第三個(gè)域來進(jìn)行排序。

二、普通用法:

 1.原址排序

1)列表有自己的sort方法,其對(duì)列表進(jìn)行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因?yàn)樵M是不可修改的。

x = [4, 6, 2, 1, 7, 9]x.sort()print x # [1, 2, 4, 6, 7, 9]

2.副本排序

1)[:]分片方法

x =[4, 6, 2, 1, 7, 9]y = x[ : ]y.sort()print y #[1, 2, 4, 6, 7, 9]print x #[4, 6, 2, 1, 7, 9]

注意:y = x[:] 通過分片操作將列表x的元素全部拷貝給y,如果簡單的把x賦值給y:y = x,y和x還是指向同一個(gè)列表,并沒有產(chǎn)生新的副本。

2)sorted方法

sorted返回一個(gè)有序的副本,并且類型總是列表,如下:

x =[4, 6, 2, 1, 7, 9]y = sorted(x)print y #[1, 2, 4, 6, 7, 9]print x #[4, 6, 2, 1, 7, 9] print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']

三、高級(jí)用法

1.自定義cmp比較函數(shù)

def comp(x, y):if x < y:return 1elif x > y:return -1else:return 0nums = [3, 2, 8 ,0 , 1]nums.sort(comp)print nums # 降序排序[8, 3, 2, 1, 0]nums.sort(cmp) # 調(diào)用內(nèi)建函數(shù)cmp ,升序排序print nums # 降序排序[0, 1, 2, 3, 8]

2.自定義key和reverse

1.reverse實(shí)現(xiàn)降序排序,需要提供一個(gè)布爾值,默認(rèn)為False(升序排列)。

2.key在使用時(shí)必須提供一個(gè)排序過程總調(diào)用的函數(shù):

alist = [('2', '3', '10'), ('1', '2', '3'), ('5', '6', '7'), ('2', '5', '10'), ('2', '4', '10')]# 多級(jí)排序,先按照第3個(gè)元素排序,然后按照第2個(gè)元素排序:print sorted(alist, cmp = None, key = lambda x:(int(x[2]), int(x[1])), reverse = False)-------------------------------------------------------------------------------------------[('1', '2', '3'), ('5', '6', '7'), ('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10')]            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌拉特后旗| 贡嘎县| 廊坊市| 方正县| 子洲县| 长武县| 横山县| 宜昌市| 龙口市| 尚义县| 关岭| 大邑县| 芜湖县| 邢台市| 定边县| 巩义市| 壶关县| 临湘市| 同德县| 邢台县| 新蔡县| 惠东县| 海淀区| 沁源县| 富蕴县| 介休市| 全南县| 芮城县| 靖宇县| 内江市| 喀喇沁旗| 广州市| 靖西县| 浦东新区| 安西县| 保康县| 巨野县| 中西区| 博乐市| 凤冈县| 梧州市|