所以我的问题被否决了两次,因为据说该问题是重复的: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})
答案 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)