繁体   English   中英

Python:对 Python 列表进行排序以显示哪个字符串最常见到最不常见以及它出现的次数

[英]Python: Sorting a Python list to show which string is most common to least common and the number of times it appears

我有一个获奖者名单,每次运行我的其余代码时都会收到不同的条目:

例如,列表可能如下所示:

winners = ['Tortoise','Tortoise','Hare']

我可以使用以下方法找到最常见的条目:

mostWins = [word for word, word_count in Counter(winners).most_common(Animalnum)]   

这将输出:

['Tortoise']

我的问题是显示从最常见到最不常见的整个列表以及每个字符串在列表中出现的次数。

只需迭代.most_common

>>> winners = ['Tortoise','Tortoise','Hare','Tortoise','Hare','Bob']
>>> import collections
>>> for name, wins in collections.Counter(winners).most_common():
...   print(name, wins)
...
Tortoise 3
Hare 2
Bob 1
>>>

Counter 内部只是一个字典。

from collections import Counter
winners = ['Tortoise','Tortoise','Hare','Tortoise','Hare','Bob', 'Bob', 'John']
counts = Counter(winners)
print(counts)
# Counter({'Tortoise': 3, 'Hare': 2, 'Bob': 2, 'John': 1})
print(counts['Hare'])
# 2

此外, .most_common(n)方法只是.items()调用,将输出限制为n长度。 所以你应该只使用它,如果你想显示前n ,例如:前 3

counts.most_common(3)
# [('Tortoise', 3), ('Hare', 2), ('Bob', 2)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM