我正在学习Python几天,我需要帮助。我正在尝试创建一个程序,要求用户输入一个单词/短语,程序会将它存储在按字母和频率分类的数组中。 这是我想要做的一个例子:
输入:甜蜜的东西
期望的输出: 'e':2, 'f':2, 's':2, 't':2, 'u':1, 'w':1, ' ':1
我有这个代码,但它只按第二个键(数字)的降序排序
arr = []
word = input("Please enter a word/phrase: ")
arr = (collections.Counter(word)).most_common
print (arr)
有没有办法垂直打印?谢谢你的帮助!
答案 0 :(得分:0)
for _ in sorted(arr, key=lambda x: x[1], reverse=True):
print('{}:{}'.format(_[0],_[1]))
说明:
key参数指定在进行比较之前在每个列表元素上调用的函数(lambda
)(这里,提取每个元素的第2个元素)。这是Python中的常见构造。
通过设置reverse=True
,输出以最高元素开始。这相当于sorted(arr, key=lambda x: x[1])[::-1]
。
请查看here以获取有关如何使用lambda
的详细说明。