在字典中搜索密钥,将该密钥值的值添加到另一个密钥值对

时间:2012-07-08 18:44:04

标签: python dictionary

好的,所以我有一个字典,有很多关键:值对:

   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”类别。

4 个答案:

答案 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