0

好的,所以我有一本字典,里面有很多键:值对:

   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 的值完全相同的数字

基本上,我有一个单词列表,这些单词属于特定类别。这些类别中的任何一个单词都会将该类别的值加一。

编辑:

预期的输出是如果第一个字典中的键具有值,则该值将添加到第二个字典中特定键的值中。

所以在这种情况下,firstitem 的值将变为“2”,因为它从 1 开始,并且 example1 属于“firstname”类别。

4

4 回答 4

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}
于 2012-07-08T20:10:26.473 回答
0

这是你的想法吗?

for word,category in worddict.items():
    categoryCounts[category] += 1
于 2012-07-08T18:50:19.783 回答
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
于 2012-07-08T18:51:52.613 回答
-1
seconddict = {}
for k,v in worddict.items():
 seconddict[v] = seconddict.get(v,0) + 1
于 2012-07-08T18:53:01.240 回答