Python 如何将排序后的dict保存到元组列表中?

Python 如何将排序后的dict保存到元组列表中?,python,Python,我的问题可能有相当简单的解决方案,但我是Python初学者,不能这样做 b = input() a = b.split() from collections import Counter myDict = Counter(a) import operator test_dict = myDict wynik = sorted(test_dict.items(), key=operator.itemgetter(1)) print(wynik) 为什么wynik未排序?您的数据已排序。按值的升序

我的问题可能有相当简单的解决方案,但我是Python初学者,不能这样做

b = input()
a = b.split()
from collections import Counter
myDict = Counter(a)
import operator
test_dict = myDict
wynik = sorted(test_dict.items(), key=operator.itemgetter(1))
print(wynik)

为什么wynik未排序?

您的数据已排序。按值的升序排列。如果希望计数按降序排列,请使用
reverse=True
反转排序顺序:

sorted(test_dict.items(), key=operator.itemgetter(1), reverse=True)
注意,你不需要自己分类;请使用以下选项:

此方法已按降序返回键和计数:

>>> from collections import Counter
>>> counts = Counter('abc abc qwerty abc bla bla bla abc'.split())
>>> counts.most_common()
[('abc', 4), ('bla', 3), ('qwerty', 1)]

我的输入:abc abc qwerty abc bla bla bla abc bla bla abc我的输出:[('qwerty',1),('bla',3),('abc',4)]我想得到[('abc',4),('bla',3),('qwerty',1)]你在使用
itemgetter(1)
,Python的序列(就像在每种合理的语言中一样)是零索引的。使用
itemgetter(0)
@filmor:不,OP很可能希望按值排序,而不是按键排序,而是按降序排序。您确定吗?这不是很明确;)你认为他为什么想要逆转?根据他的评论,他想要
[('abc',4),('bla',3),('qwerty',1)]
。@Alfe:是的,按计数。4、3、1也是排序顺序。当然键也按字母顺序排列,但使用计数器时,计数更有可能按字母顺序排序。@阿尔夫:此外,按键排序的逻辑方法是根本不使用键函数:
sorted(myDict.items())
>>> from collections import Counter
>>> counts = Counter('abc abc qwerty abc bla bla bla abc'.split())
>>> counts.most_common()
[('abc', 4), ('bla', 3), ('qwerty', 1)]