排序字典在Python中降序

问题描述 投票:5回答:6

我是Python的新手,我想知道是否有比我做字典更常见的降序排序方式:

sorted_dictionary = sorted(dict.items(), key=lambda x: -x[1])
python sorting dictionary
6个回答
14
投票

reverse有一个sorted()选项,您可以代替使用:

sorted(dict.items(), key=lambda kv: kv[1], reverse=True)

这将产生完全相同的输出,甚至在值不是数字时也可以使用。


3
投票

Python字典无法排序。您的sorted_dictionary输出不是字典,而是列表。您必须使用OrderedDict

OrderedDict

0
投票

基于值的升序排序字典

from collections import OrderedDict

sorted_dictionary = OrderedDict(sorted(dict.items(), key=lambda v: v, reverse=True))

结果

d = {'a':5 , 'b':3 , 'd':1 , 'e':2 , 'f':4}
result = sorted(d.items() , key=lambda t : t[1])

for k,v in result:
  print(k,v)

基于值的降序排序字典

d 1
e 2
b 3
f 4
a 5


# d.items=[('a', 5), ('b', 3), ('d', 1), ('e', 2), ('f', 4)]
# lambda t = ('a',5)
# lambda t : t[1] = 5
# result = [('d', 1), ('e', 2), ('b', 3), ('f', 4), ('a', 5)]
# k ,v = ('d',1)
# k = 'd'  
# v = 1

结果

d = {'a':5 , 'b':3 , 'd':1 , 'e':2 , 'f':4}
result = sorted(d.items() , key=lambda t : t[1] , reverse=True)

for k,v in result:
  print(k,v)

0
投票

这应该工作

 a 5
 f 4
 b 3
 e 2
 d 1


# d.items=[('a', 5), ('b', 3), ('d', 1), ('e', 2), ('f', 4)]
# lambda t = ('a',5)
# lambda t : t[1] = 5
# result = [('a', 5), ('f', 4), ('b', 3), ('e', 2), ('d', 1)]
# k ,v = ('a',5)
# k = 'a'  
# v = 5

-1
投票

在python列表中按值的降序排列:

{k: v for k, v in sorted(dict.items(), key=lambda item: item[1], reverse = True)}

输出为:

items = {'a':6 , 'b':3 , 'c':1 , 'd':9}
sortedItems = sorted(items , key=items.get , reverse = True)
for element in sortedItems :
       print (element, items.get(element))

-1
投票

这里是获取所有素数的指数范围内所有数字的指数的代码

d 9
a 6
b 3
c 1

对于范围(1,10001)中的数字:k =数量prime_factors = {}

    from sympy import primefactors
© www.soinside.com 2019 - 2024. All rights reserved.