2012-07-08 36 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

相關問題