比较两个不同列表中python中两个词典中的值

时间:2017-04-03 17:56:45

标签: python python-3.x dictionary

这是我程序的一小部分,但基本上到目前为止,我已查看了两个txt文件,并将它们与一个带有关键字的主txt文件进行了比较。对于前两个txt文件(txt文件1和文件文件2)中的每一个,我找到了来自主txt文件的单词的频率,并将这些单词及其频率放在txt文件1和1中。 txt文件2分为两个单独的词典,wordfreq和wordfreq2。

现在我想比较这两个列表中的单词的频率。如果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)

1 个答案:

答案 0 :(得分:0)

您在此处所做的是使用anotherdict2更新wordfreq2(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