2012-07-08 37 views
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的值由完全相同的数量增加为示例1

基本上,我有一个单词列表的价值,而这些话是在特定的类别。任何类别的任何单词都会将该类别的价值增加1。

编辑:

预期输出被如果来自第一字典中的键具有值,该值将被从所述第二字典添加到特定键的值。

因此,在这种情况下,第一项的值将变为“2”,因为它是1开始,而example1是在“firstname”类别中。

+4

日文N3 N4 N5没有一个明确的顺序。 “firstitem”是什么意思?你想要“第二项”和“第三项”发生什么? – 2012-07-08 18:46:41

+0

这里您的预期输出是什么? – 2012-07-08 18:47:28

+2

您需要阅读Python教程以了解如何使用字典。 – BrenBarn 2012-07-08 18:48:18

回答

1

编辑:的任择议定书品牌的评论很明显,单词可以在多个类别中。代码调整。


我想你想类积累的话值。一个(简单)的方式做这将是:

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} 
+0

Hrm,这是有效的,除了如果一个单词是在两个类别中,它不能为两者添加一个值。 – 2012-07-08 20:52:55

+0

@AndrewAlexander:在这种情况下,您需要一个映射词 - >类别列表。查看更新的答案。 – WolframH 2012-07-08 21:06:48

+0

噢,这就是它需要的一切,就是把一个列表作为价值?那么这是一个简单的修复! – 2012-07-08 21:20:22

0

这是你在想什么?

for word,category in worddict.items(): 
    categoryCounts[category] += 1 
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 
-1
seconddict = {} 
for k,v in worddict.items(): 
seconddict[v] = seconddict.get(v,0) + 1 
+0

对于任何人而言,这并不是非常有用,只是提出问题的人。 – benRollag 2012-07-08 19:58:03

相关问题