计算python列表中的出现次数,并返回具有最多出​​现次数和金额的值

时间:2017-04-13 13:16:36

标签: python list dictionary count

所以我有一个像这样的字符串列表:

mylist = ['foo', 'bar', 'foo', 'bar', 'abc']

我希望得到这样的输出:

foo exists twice
bar exists twice
abc exists once

我尝试将列表转换为以字符串作为键的字典,并且值会在列表中的每次出现时递增。 但是我无法按照能够打印最多字符串的字符串来排序字典。 我也试过使用二维阵列,但也没有用。有谁知道这样做的好方法?

1 个答案:

答案 0 :(得分:1)

您可以使用dictdefault_dict并按值排序,但不需要重新发明轮子。您需要Counter

from collections import Counter
counter = Counter(['foo', 'bar', 'foo', 'bar', 'abc'])
print(counter.most_common())
# [('foo', 2), ('bar', 2), ('abc', 1)]

for (word, occurences) in counter.most_common():
    print("%s appears %d times" % (word, occurences))
# foo appears 2 times
# bar appears 2 times
# abc appears 1 times