Python 字典根据值的大小排序

 

Python
In [74]: ss = {x:randint(10,100) for x in 'abcdef'} In [75]: ss Out[75]: {'a': 33, 'b': 40, 'c': 84, 'd': 50, 'e': 72, 'f': 35} In [76]: ss.keys() Out[76]: dict_keys(['a', 'b', 'c', 'd', 'e', 'f']) In [77]: ss.values() Out[77]: dict_values([33, 40, 84, 50, 72, 35]) In [78]: zip(ss.keys(), ss.values()) Out[78]: <zip at 0x102c4f988> """元组之间的比较, 首先以第一元素进行比较,如果相等则比较第二个 In [82]: (33, 'a') > (40, 'b') Out[82]: False In [83]: (33, 'a') < (40, 'b') Out[83]: True In [84]: (33, 'a') < (40, 'a') Out[84]: True In [85]: (40, 'a') < (40, 'a') """ In [80]: list(zip(ss.values(), ss.keys())) Out[80]: [(33, 'a'), (40, 'b'), (84, 'c'), (50, 'd'), (72, 'e'), (35, 'f')] In [81]: <span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/sorted" title="View all posts in sorted" target="_blank">sorted</a></span>(list(zip(ss.values(), ss.keys()))) Out[81]: [(33, 'a'), (35, 'f'), (40, 'b'), (50, 'd'), (72, 'e'), (84, 'c')]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
In [ 74 ] : ss = { x : randint ( 10 , 100 ) for x in 'abcdef' }
 
In [ 75 ] : ss
Out [ 75 ] : { 'a' : 33 , 'b' : 40 , 'c' : 84 , 'd' : 50 , 'e' : 72 , 'f' : 35 }
 
In [ 76 ] : ss . keys ( )
Out [ 76 ] : dict_keys ( [ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' ] )
 
In [ 77 ] : ss . values ( )
Out [ 77 ] : dict_values ( [ 33 , 40 , 84 , 50 , 72 , 35 ] )
 
In [ 78 ] : zip ( ss . keys ( ) , ss . values ( ) )
Out [ 78 ] : < zip at 0x102c4f988 >
 
"""元组之间的比较, 首先以第一元素进行比较,如果相等则比较第二个
In [82]: (33, 'a') > (40, 'b')
Out[82]: False
 
In [83]: (33, 'a') < (40, 'b')
Out[83]: True
 
In [84]: (33, 'a') < (40, 'a')
Out[84]: True
 
In [85]: (40, 'a') < (40, 'a')
"""
 
 
In [ 80 ] : list ( zip ( ss . values ( ) , ss . keys ( ) ) )
Out [ 80 ] : [ ( 33 , 'a' ) , ( 40 , 'b' ) , ( 84 , 'c' ) , ( 50 , 'd' ) , ( 72 , 'e' ) , ( 35 , 'f' ) ]
 
In [ 81 ] : sorted ( list ( zip ( ss . values ( ) , ss . keys ( ) ) ) )
Out [ 81 ] : [ ( 33 , 'a' ) , ( 35 , 'f' ) , ( 40 , 'b' ) , ( 50 , 'd' ) , ( 72 , 'e' ) , ( 84 , 'c' ) ]

# 方法二 :字典的比较

Python
In [86]: ss Out[86]: {'a': 33, 'b': 40, 'c': 84, 'd': 50, 'e': 72, 'f': 35} In [87]: ss.items() Out[87]: dict_items([('a', 33), ('b', 40), ('c', 84), ('d', 50), ('e', 72), ('f', 35)]) In [89]: <span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/sorted" title="View all posts in sorted" target="_blank">sorted</a></span>(ss.items(),key = lambda x:x[1]) Out[89]: [('a', 33), ('f', 35), ('b', 40), ('d', 50), ('e', 72), ('c', 84)]
1
2
3
4
5
6
7
8
9
In [ 86 ] : ss
Out [ 86 ] : { 'a' : 33 , 'b' : 40 , 'c' : 84 , 'd' : 50 , 'e' : 72 , 'f' : 35 }
 
In [ 87 ] : ss . items ( )
Out [ 87 ] : dict_items ( [ ( 'a' , 33 ) , ( 'b' , 40 ) , ( 'c' , 84 ) , ( 'd' , 50 ) , ( 'e' , 72 ) , ( 'f' , 35 ) ] )
 
 
In [ 89 ] : sorted ( ss . items ( ) , key = lambda x : x [ 1 ] )
Out [ 89 ] : [ ( 'a' , 33 ) , ( 'f' , 35 ) , ( 'b' , 40 ) , ( 'd' , 50 ) , ( 'e' , 72 ) , ( 'c' , 84 ) ]



  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值