这是一个用于计算使用dict.get()方法的默认参数的单词的脚本:
word_list = ['abc', 'abc', 'def']
word_data = {}
for word in word_list:
word_data[word] = word_data.get(word, 0) + 1
print(word_data)
这适用于简单计数。但是如果我想收集更多的数据,比如word_list中的单词条目的索引,那么我需要将这些额外的数据插入到get()的默认参数和尾随表达式中(" + 1& #34;。)
我该怎么做?
答案 0 :(得分:1)
如果您想继续使用dict.get
方法,那么,您可以这样做:
for i, word in enumerate(word_list):
elem = word_data.get(word, {'index':[], 'count':0})
word_data.update({
word: {
'indexes': elem['indexes']+[i],
'count': elem['count']+1
}
})
然后,结果,你会得到:
{'abc': {'count': 2, 'indexes': [0, 1]}, 'def': {'count': 1, 'indexes': [2]}}
虽然在这种特殊情况下,可能只是跟踪索引会更有效(因为每个单词的出现次数只是该列表的长度),对吧? :)
答案 1 :(得分:0)
for word in sorted(set(word_list)):
indices = [i for i, x in enumerate(word_list) if x == word]
counts = word_list.count(word)
word_data[word] = {}
word_data[word]['count'] = counts
word_data[word]['indexes'] = indices
希望这有助于交配!