按字典升序对字典值进行排序

时间:2018-12-29 01:24:15

标签: python sorting

所以我的问题被否决了两次,因为据说该问题是重复的:Sort Counter by frequency, then alphabetically in Python

这里的答案是关于按字母顺序对反字典的排序。虽然我想按升序订购

我想按频率排序一个字符串列表。默认情况下,我以降序获得每个字符串的频率。

我做了letter_counts = Counter(list_of_string))。我想我正在按降序排列字典。

我想按升序对它们进行排序,**但到目前为止,我还没有对其进行管理。

我已阅读How do I sort a dictionary by value?,但不能真正将其应用于降序。

frequency = Counter(list_of_string)
print(frequency)

我要的字典(是吗?)如下。如您所见,它已经降序了

    Counter({' stan ': 3, 
' type ': 3, 
' quora ': 3, 
' pescaparian': 3, 
' python remove even number from a list': 3, 
' gmail': 3, 
' split words from a string ': 3, 
' split python ': 2, 
' split ': 2, 
' difference entre list et set': 2, 
' add a key to a dictionnary python': 1, 
' stackoverflowsearch python add lists': 1})

1 个答案:

答案 0 :(得分:0)

您最好指定要使用的python版本,因为字典在Python 3.7中(实际上是在Python 3.6中)没有顺序。由于它们是按插入顺序排序的。如果您使用的是旧版本,OrderedDict可能会为您提供帮助。 无论如何,如果您只想打印键或将其保存在降序排列的其他数据结构中,则应该可以:

frequency = Counter(list_of_string)
l = frequency.keys()
print(l)

相反的顺序:

frequency = Counter(list_of_string)
l = [k for k in frequency.keys()][::-1]
print(l)

如果您需要将其用作字典:

frequency = Counter(list_of_string)
d = dict(frequency.most_common()[::-1])
print(d)