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

首頁 > 編程 > Python > 正文

淺析Python中的多條件排序實現

2019-11-25 16:45:08
字體:
來源:轉載
供稿:網友

多條件排序及itemgetter的應用
曾經客戶端的同事用as寫一大堆代碼來排序,在得知Python排序往往只需要一行,驚訝無比,遂對python產生濃厚的興趣。
之前在做足球的積分榜的時候需要用到多條件排序,如果積分相同,則按凈勝球,再相同按進球數,再相同按失球數。
即按積分P、凈勝球GD、進球GS、失球GA這樣的順序。
在python中,排序非常方便,排序的參數主要有key、reverse。參數cmp不建議使用了,在python3.0被移除了,用參數key代替。
對于多條件排序,也非常簡單,只需要記住下面這句話就行。 即參數key指定的函數返回一個元組,多條件排序的順序將按照元組的順序。
看了下面的代碼你就明白了,下面是2010世界杯小組賽A組的積分榜。

teamitems = [{'team':'France'   , 'P':1 , 'GD':-3 , 'GS':1 , 'GA':4},       {'team':'Uruguay'   , 'P':7 , 'GD':4 , 'GS':4 , 'GA':0},       {'team':'SouthAfrica' , 'P':4 , 'GD':-2 , 'GS':3 , 'GA':5},       {'team':'Mexico'   , 'P':4 , 'GD':1 , 'GS':3 , 'GA':2}]  print sorted(teamitems ,key = lambda x:(x['P'],x['GD'],x['GS'],x['GA']),reverse=True) 

輸出

[{'P': 7, 'GD': 4, 'GS': 4, 'GA': 0, 'team': 'Uruguay'},  {'P': 4, 'GD': 1, 'GS': 3, 'GA': 2, 'team': 'Mexico'},  {'P': 4, 'GD': -2, 'GS': 3, 'GA': 5, 'team': 'SouthAfrica'},  {'P': 1, 'GD': -3, 'GS': 1, 'GA': 4, 'team': 'France'}]

即小組排名是烏拉圭、墨西哥、南非、法國。

不過這樣一個個取字典的鍵值有點

主站蜘蛛池模板: 固始县| 邵阳市| 武宣县| 东乌珠穆沁旗| 海南省| 田阳县| 霞浦县| 白山市| 巴东县| 稻城县| 上杭县| 洛宁县| 郧西县| 清远市| 佛冈县| 吕梁市| 三穗县| 湘潭县| 刚察县| 海阳市| 洱源县| 辽宁省| 如东县| 余江县| 铜山县| 甘泉县| 精河县| 翁源县| 兴仁县| 彝良县| 宜良县| 荣成市| 镇赉县| 合川市| 东山县| 吉木萨尔县| 那坡县| 贵阳市| 长宁县| 长宁县| 通化市|