Py学习  »  Python

python,打印输入中出现最多的单词或字母[关闭]

Anon123 • 5 年前 • 1342 次点击  

我不知道我的问题是否重复,因为我找不到正确的答案。我想在新行上打印最常见的单词或数字。但是,如果频率相同,则打印两个单词/数字。

Input: green green green orange orange yellow

Output: green


Input: green green green orange orange orange yellow

Output: green 
        orange


Input: 1 1 2 2 3 3 4

Output: 1
        2
        3


Input: 1 1 1 2 2 3 3

Output: 1
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38147
 
1342 次点击  
文章 [ 2 ]  |  最新文章 5 年前
U10-Forward
Reply   •   1 楼
U10-Forward    6 年前

你也可以 max 具有 key argument ,那么列表理解就需要计算所有这些,因为 最大值 只需要一个:

>>> words = ['green', 'green','green', 'yellow','orange','orange','orange']
>>> list(set([i for i in words if words.count(i) == words.count(max(words,key=words.count))]))
['green', 'orange']
>>> 
magegaga.com
Reply   •   2 楼
magegaga.com    6 年前

你能告诉我你试过什么吗?遵循代码片段可能会对您有所帮助

 words = ['green', 'green','green', 'yellow']

 from collections import Counter
 counts = Counter(words)

 top = [k for k, _ in   counts.most_common(list(counts.values()).count(max(counts.values())))]
 print(top)