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

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

在python中排序元組

2019-11-14 09:16:27
字體:
供稿:網(wǎng)友

在Python中,當你排序一個元組時,如下所示:

>>> items = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]>>> sorted(items)[(0, 'B'), (0, 'a'), (1, 'A'), (1, 'B'), (2, 'A')]

        默認情況下,sort和sorted內(nèi)建函數(shù)會優(yōu)先排序第一個元素,然后再排序第二個元素,大寫字母會排在小寫字母前面。當你想要不區(qū)分大小寫排序時,可能會按如下寫代碼:

>>> sorted(items, key=str.lower)Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: descr          出現(xiàn)了錯誤,lower需要的是字符串對象,但是接收到了元組。下面的應用lamdba,返回一個元組:

>>> sorted(items, key=lambda x: (x[0], x[1].lower()))[(0, 'a'), (0, 'B'), (1, 'A'), (1, 'B'), (2, 'A')]

        我確定你知道可以通過 sorted(items, reverse=True, ...) 將其反轉(zhuǎn),但是如果你想要依賴你提供的key來獲得不同的排序順序時,該怎么辦呢?使用lambda函數(shù)返回一個元組可以實現(xiàn),下面是一個更高級的結(jié)構(gòu)排序

>>> peeps = [{'name': 'Bill', 'salary': 1000}, {'name': 'Bill', 'salary': 500}, {'name': 'Ted', 'salary': 500}]
>>> sorted(peeps, key=lambda x: (x['name'], x['salary']))[{'salary': 500, 'name': 'Bill'}, {'salary': 1000, 'name': 'Bill'}, {'salary': 500, 'name': 'Ted'}]

      如果你想要使salary逆序,只需要如下改動:

>>> sorted(peeps, key=lambda x: (x['name'], -x['salary']))[{'salary': 1000, 'name': 'Bill'}, {'salary': 500, 'name': 'Bill'}, {'salary': 500, 'name': 'Ted'}]
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 山东省| 靖宇县| 安宁市| 赤壁市| 屏南县| 三门峡市| 湘西| 兴国县| 东兴市| 巧家县| 浦县| 滦南县| 云阳县| 西乌珠穆沁旗| 富川| 自贡市| 金坛市| 和平县| 揭东县| 郸城县| 滁州市| 乐亭县| 昌邑市| 土默特左旗| 西充县| 尚志市| 定日县| 吴江市| 铜陵市| 岗巴县| 鄯善县| 乌拉特中旗| 丰镇市| 涡阳县| 清原| 塔城市| 婺源县| 石景山区| 涪陵区| 东丽区| 翁牛特旗|