所以我有一个像这样的字符串列表:
mylist = ['foo', 'bar', 'foo', 'bar', 'abc']
我希望得到这样的输出:
foo exists twice
bar exists twice
abc exists once
我尝试将列表转换为以字符串作为键的字典,并且值会在列表中的每次出现时递增。 但是我无法按照能够打印最多字符串的字符串来排序字典。 我也试过使用二维阵列,但也没有用。有谁知道这样做的好方法?
答案 0 :(得分:1)
您可以使用dict
或default_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