按键对字典排序并打印相应的值

时间:2017-10-27 12:21:11

标签: python python-3.x sorting dictionary

我想知道如何按键对字典进行排序,然后打印相应的值? 这是我的词典,它计算一个数字出现在列表中的次数。

L=[1,2,1,5,9,7,8,0,3]
d = {}
for i in L:
    if i in d : d[ i ] += 1
    else : d[ i ] = 1

val= list(d.keys())  
frequency= list(d.values())
for i in range(len(d)):
  print(val[i],":",frequency[i])

我得到了

1 : 2
2 : 1
5 : 1
9 : 1
7 : 1
8 : 1
0 : 1
3 : 1

但我希望按键以升序显示,我该怎么做并保留密钥的相应值?

1 个答案:

答案 0 :(得分:0)

您可以尝试:

print(sorted(d.items(), key=lambda x: x[0]))

第二个选项可以是:

import operator
sorted_x = sorted(d.items(), key=operator.itemgetter(0))
print({k[0]:k[1] for k in sorted_x})

结果:

{0: 1, 1: 2, 2: 1, 3: 1, 5: 1, 7: 1, 8: 1, 9: 1}