电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python sorted對list和dict排序

瀏覽:6日期:2022-07-22 08:04:48

sorted語法

sorted(iterable, key=None, reverse=False)

參數(shù)說明:

- iterable -- 可迭代對象。 - key --主要是用來進行比較的元素,只有一個參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。 - reverse -- 排序規(guī)則,reverse = True 降序 , reverse = False 升序(默認(rèn))。

返回: - 一個新list對象

sorted對字典dict排序

①按鍵key排序

from operator import itemgetterdict = {3: ’B’, 1: ’A’, 2: ’C’}# 按key升序 .items()取得3個(key,value)# lambda x: x[0]取(key,value)的key 即(3,1,2)d1 = sorted(dict.items(), key=lambda x: x[0], reverse=False) # <class ’list’># 按key降序 itemgetter類似lambdad2 = sorted(dict.items(), key=itemgetter(0), reverse=True) # <class ’list’># 輸出print(d1, type(d1)) # [(1, ’A’), (2, ’C’), (3, ’B’)] <class ’list’>print(d2, type(d2)) # [(3, ’B’), (2, ’C’), (1, ’A’)] <class ’list’>

[(1, ‘A’), (2, ‘C’), (3, ‘B’)] <class ‘list’>[(3, ‘B’), (2, ‘C’), (1, ‘A’)] <class ‘list’>

②按值value排序

from operator import itemgetterdict = {3: ’B’, 1: ’A’, 2: ’C’}# 按value升序 .items()取得3個(key,value)# lambda x: x[1]取(key,value)的value 即(’B’,’A’,’C’)d3 = sorted(dict.items(), key=lambda x: x[1], reverse=False) # <class ’list’># 按value降序 itemgetter類似lambdad4 = sorted(dict.items(), key=itemgetter(1), reverse=True) # <class ’list’>print(d3, type(d3)) # [(1, ’A’), (3, ’B’), (2, ’C’)] <class ’list’>print(d4, type(d4)) # [(2, ’C’), (3, ’B’), (1, ’A’)] <class ’list’>

[(1, ‘A’), (3, ‘B’), (2, ‘C’)] <class ‘list’>[(2, ‘C’), (3, ‘B’), (1, ‘A’)] <class ‘list’>

sorted排序list

①按一種規(guī)則排序list

from operator import itemgetterdata = [(’c’, 3, ’Apple’), (’d’, 1, ’Cat’), (’a’, 2, ’Banana’)]# 根據(jù)字母升序print(sorted(data, key=lambda x: x[0], reverse=False)) # <class ’list’># 根據(jù)數(shù)字升序print(sorted(data, key=lambda x: x[1], reverse=False)) # <class ’list’># 根據(jù)單詞升序print(sorted(data, key=lambda x: x[2], reverse=False)) # <class ’list’>

[(’a’, 2, ’Banana’), (’c’, 3, ’Apple’), (’d’, 1, ’Cat’)][(’d’, 1, ’Cat’), (’a’, 2, ’Banana’), (’c’, 3, ’Apple’)][(’c’, 3, ’Apple’), (’a’, 2, ’Banana’), (’d’, 1, ’Cat’)]

②按多種規(guī)則排序list

# 先按照成績降序排序,相同成績的按照名字升序排序:d1 = [{’name’:’alice’, ’score’:38}, {’name’:’bob’, ’score’:18}, {’name’:’darl’, ’score’:28}, {’name’:’christ’, ’score’:28}]l = sorted(d1, key=lambda x:(-x[’score’], x[’name’]))print(l)

[{’name’: ’alice’, ’score’: 38}, {’name’: ’christ’, ’score’: 28}, {’name’: ’darl’, ’score’: 28}, {’name’: ’bob’, ’score’: 18}]

sorted排序list和dict的混合

先看看我們排序的有哪些類型的數(shù)據(jù)結(jié)構(gòu)

#### 二維list排序l1 = [[’Bob’, 95.00, ’A’], [’Alan’, 86.0, ’C’], [’Mandy’, 82.5, ’A’], [’Rob’, 86, ’E’]]#### list中混合字典l2 = [{’name’:’alice’, ’score’:38}, {’name’:’bob’, ’score’:18}, {’name’:’darl’, ’score’:28}, {’name’:’christ’, ’score’:28}]#### 字典中混合listd1 = {’Li’: [’M’, 7], ’Zhang’: [’E’, 2], ’Wang’: [’P’, 3], ’Du’: [’C’, 2], ’Ma’: [’C’, 9], ’Zhe’: [’H’, 7]}#### 對字典中的多維list進行排序d2 = { ’Apple’: [[’44’, 88], [’11’, 33], [’22’, 88]], ’Banana’: [[’55’, 43], [’11’, 68], [’44’, 22]], ’Orange’:[[’22’, 22], [’55’, 41], [’44’, 42], [’33’, 22]]}

二維list排序

from operator import itemgetterl1 = [[’Bob’, 95.00, ’A’], [’Alan’, 86.0, ’C’], [’Mandy’, 82.5, ’A’], [’Rob’, 86, ’E’]]# 按先按成績號升序,再按成績數(shù)值升序print(sorted(l1, key=itemgetter(2, 1), reverse=False))# 按先按成績號升序,再按成績數(shù)值降序序print(sorted(l1, key=lambda x:(x[2], -x[1]), reverse=False))

[[‘Mandy’, 82.5, ‘A’], [‘Bob’, 95.0, ‘A’], [‘Alan’, 86.0, ‘C’], [‘Rob’, 86, ‘E’]][[‘Bob’, 95.0, ‘A’], [‘Mandy’, 82.5, ‘A’], [‘Alan’, 86.0, ‘C’], [‘Rob’, 86, ‘E’]]

2. list中混合字典

from operator import itemgetter# 先按照成績降序排序,相同成績的按照名字升序排序:l2 = [{’name’:’alice’, ’score’:38}, {’name’:’bob’, ’score’:18}, {’name’:’darl’, ’score’:28}, {’name’:’christ’, ’score’:28}]print(sorted(l2, key=lambda x:(-x[’score’], x[’name’])))print(sorted(l2, key=itemgetter(’score’, ’name’)))

[{‘name’: ‘a(chǎn)lice’, ‘score’: 38}, {‘name’: ‘christ’, ‘score’: 28}, {‘name’: ‘darl’, ‘score’: 28}, {‘name’: ‘bob’, ‘score’: 18}][{‘name’: ‘bob’, ‘score’: 18}, {‘name’: ‘christ’, ‘score’: 28}, {‘name’: ‘darl’, ‘score’: 28}, {‘name’: ‘a(chǎn)lice’, ‘score’: 38}]

3. 字典中混合list

d1 = {’Li’: [’M’, 7], ’Zhang’: [’E’, 2], ’Wang’: [’P’, 3], ’Du’: [’C’, 2], ’Ma’: [’C’, 9], ’Zhe’: [’H’, 7]}# sort返回的是list,如果需要轉(zhuǎn)為dict,再sorted前面套一個dict()就可以了print(sorted(d1.items(), key=lambda x:(x[1][1], -ord(x[1][0]) ))) # 對字符比較需要ord。如果是’123’字符串?dāng)?shù)字可以使用int。# print(sorted(d1.items(), key=lambda x:(x[1][1], -ord(x[1][0]) )))

[(‘Zhang’, [‘E’, 2]), (‘Du’, [‘C’, 2]), (‘Wang’, [‘P’, 3]), (‘Li’, [‘M’, 7]), (‘Zhe’, [‘H’, 7]), (‘Ma’, [‘C’, 9])]

4. 對字典中的多維list進行排序

d2 = { ’Apple’: [[’44’, 88], [’11’, 33], [’22’, 88]], ’Banana’: [[’55’, 43], [’11’, 68], [’44’, 22]], ’Orange’:[[’22’, 22], [’55’, 41], [’44’, 42], [’33’, 22]]}for key, value in d2.items(): d2[key] = sorted(value, key=lambda x:(x[1], -int(x[0]))) # 按list第二列升序,相同則按第一列降序,參考二維list排序print(d2)

{‘Apple’: [[‘11’, 33], [‘44’, 88], [‘22’, 88]], ‘Banana’: [[‘44’, 22], [‘55’, 43], [‘11’, 68]], ‘Orange’: [[‘33’, 22], [‘22’, 22], [‘52’, 41], [‘44’, 42]]}

到此這篇關(guān)于Python sorted對list和dict排序的文章就介紹到這了,更多相關(guān)Python sorted對list和dict排序內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 西安中国国际旅行社(西安国旅) | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 美能达分光测色仪_爱色丽分光测色仪-苏州方特电子科技有限公司 | 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 阿米巴企业经营-阿米巴咨询管理-阿米巴企业培训-广东键锋企业管理咨询有限公司 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 | 湿地保护| 体坛网_体坛+_体坛周报新闻客户端| 数码管_LED贴片灯_LED数码管厂家-无锡市冠卓电子科技有限公司 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 膜片万向弹性联轴器-冲压铸造模具「沧州昌运模具」 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 深圳湾1号房价_深圳湾1号二手房源| 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 食品质构分析仪-氧化诱导分析仪-瞬态法导热系数仪|热冰百科 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 |