好的,所以我有一个字典,有很多关键:值对:
worddict = {'example1': 1, 'example2': 0, 'example3': 7}
我想查看某些键,并获取它们的值,并将其添加到另一个键:值对的值。例如:
伪代码:
seconddict = {'firstitem': 1, 'seconditem': 1, 'thirditem':9}
for x in worddict:
if x.key = example1:
seconddict{'firstitem'.value} + example1.value
我认为我有正确的总体思路,但不是语法。
但基本上,firstitem的值将增加与example1
的值完全相同的数字基本上,我有一个单词列表,这些单词属于某些类别。任何这些类别中的任何单词都会将该类别的值加1。
编辑:
预期输出是指第一个字典中的某个键有值,该值将从第二个字典添加到特定键的值。
所以在这种情况下,firstitem的值将变为“2”,因为它的开头是1,而example1是“firstname”类别。
答案 0 :(得分:1)
编辑:OP的评论清楚地表明单词可以在多个类别中。代码已调整。
我认为您希望积累 按类别的值。一种(简单)方法是:
def accumulate_by_category(word_values, cat_sums, cats):
""" modify the category sums by adding the values of the given words """
for word, value in word_values.items():
for cat in cats[word]:
cat_sums[cat] += value
你可以像这样使用它:
worddict = {'example1': 1, 'example2': 0, 'example3': 7}
seconddict = {'firstitem': 1, 'seconditem': 1, 'thirditem':9}
categories = {'example1': ['firstitem', 'thirditem'],
'example2': ['seconditem', 'thirditem'],
'example3': ['thirditem']}
accumulate_by_category(worddict, seconddict, categories)
print(seconddict) # {'seconditem': 1, 'firstitem': 2, 'thirditem': 17}
答案 1 :(得分:0)
这是你的想法吗?
for word,category in worddict.items():
categoryCounts[category] += 1
答案 2 :(得分:0)
我猜你正在寻找这样的东西 - 如果没有,请发布你的预期产量
my_list = [False, False, False, True, True, True]
worddict = {'example1': 1, 'example2': 0, 'example3': 7}
seconddict = {'firstitem': 1, 'seconditem': 1, 'thirditem':9}
keys_to_add = ['example1', 'example3']
for k in keys_to_add:
seconddict['firstitem'] += worddict[k]
print seconddict
答案 3 :(得分:-1)
seconddict = {}
for k,v in worddict.items():
seconddict[v] = seconddict.get(v,0) + 1