2017-04-03 423 views
0

這是我程序的一小部分,但基本上到目前爲止,我已經查看了兩個txt文件,並將它們與一個帶有關鍵字的主txt文件進行了比較。對於前兩個txt文件(txt文件1 & txt文件2)中的每一個,我從主txt文件中找到單詞的頻率,並將txt文件的文本和頻率放入兩個單獨的詞典中,wordfreq和wordfreq2。比較兩個不同列表中Python中兩個字典的值

現在我想比較這兩個列表中單詞的頻率。如果wordfreq中的鍵值比wordfreq2中的鍵值大,我想將該詞添加到anotherdict1中,反之亦然。

anotherdict1 = {} 
anotherdict2 = {} 


for key in wordfreq.keys(): 
    if key in wordfreq2.keys() > key in wordfreq.keys(): 
     anotherdict2.update(wordfreq2) 

for key in wordfreq2.keys(): 
    if key in wordfreq.keys() > key in wordfreq2.keys(): 
     anotherdict1.update(wordfreq) 

print (wordfreq) 
print (wordfreq2) 

回答

0

你在做什麼這裏正在更新anotherdict2wordfreq2(與同爲dict1)。這意味着wordfreq2中的每個鍵/值將與anotherdict2中的相同。但是,您應該做的只是添加特定的鍵/值對。此外,您的if檢查正在比較兩個布爾值。也就是key in wordfreq2.keys()會導致True或False,而不是值本身。你應該使用wordfreq2[key]。下面是我該怎麼做:

for key, wordfreq_value in wordfreq.items(): 
    wordfreq2_value = wordfreq2[key] 
    if wordfreq2_value > wordfreq_value: 
     anotherdict2[key] = wordfreq2_value 
    else: 
     anotherdict[key] = wordfreq_value