我导入了收藏品
import collections
我用它来计算列表中某些字符串的出现次数
counts = collections.Counter(list)
counts = counts.most_common()
这完全没问题。现在我的需求发生了变化,我有一个嵌套列表,我想计算该列表中列表的出现次数:
lists = [['word1', 'word2'], ['word4', 'word6'], ['word1', 'word2']]
我得到"列表"从单个单词列表中:
list = ['word1', 'word2', ...]
结果应如下所示
[(('word1', 'word2'), 2), (('word4', 'word6'), 1)]
我希望很清楚我想要什么。
答案 0 :(得分:2)
collection.Counter()
完美无缺。以下是您提到的示例:
>>> from collections import Counter
>>> my_list = [('word1', 'word2'), ('word4', 'word6'), ('word1', 'word2')]
>>> Counter(my_list)
Counter({('word1', 'word2'): 2, ('word4', 'word6'): 1}) # dict object
>>> Counter(my_list).most_common()
[(('word1', 'word2'), 2), (('word4', 'word6'), 1)]
答案 1 :(得分:1)
使用hashing
使用dict()
。这是一个简单的代码说明:
lists = [('word1', 'word2'), ('word4', 'word6'), ('word1', 'word2')]
hashmap = dict()
for item in lists:
if item in hashmap:
hashmap[item] += 1
else:
hashmap[item] = 1
new_list = []
for key, value in hashmap.iteritems():
new_list.append(((key), value))
print new_list # output: [(('word1', 'word2'), 2), (('word4', 'word6'), 1)]
答案 2 :(得分:0)
好的,我只是设法自己回答这个问题。
问题是它是一份清单
我需要有一个tupples列表来让Counter工作。
我在收集单词列表中的单词时设法做到了这一点:
...元组(单词[i:i + 2])