dict1 = open('dict1.txt','r')
dict2 = open('dict2.txt','r')
keys = []
values = []
for w in dict1:
keys.append(w.strip())
for key in keys:
key
for x in dict2:
values.append(x.strip())
for val in values:
val
dictionary = {key: val}
文本文件包含140行单个单词。 'keys'是第一个文件中的单词列表,'values'是第二个文件中的单词列表。
每当我打印字典时,我只会得到第一对字典。如何在字典中循环它以便我得到所有140对?
我试过这样做:
dictionary = {}
val = dictionary[key]
但是我在控制台上得到'KeyError'。我知道这是基本的东西,但我一直在努力。
答案 0 :(得分:1)
您可以使用zip
轻松构建字典:
for w in dict1:
keys.append(w.strip())
for x in dict2:
values.append(x.strip())
dictionary = dict(zip(keys, values))
您的KeyError
是由于分配错误导致的:
val = dictionary[key]
尝试将dictionary
中当前key
的内容(什么都不是)分配给val
。相反,它应该是:
dictionary[key] = val
您的循环代码也不正确:
for w in dict1:
keys.append(w.strip())
for key in keys: # looping over all keys so far each time
key # doesn't do anything
你的第一次尝试:
dictionary = {key: val}
每次都会创建一个新的dictionary
。
答案 1 :(得分:0)
使用zip()
组合两个文件中的键和值。您可以使用两行代码一次性生成整个字典:
with open('dict1.txt','r') as keys, open('dict2.txt','r') as values:
dictionary = {key.strip(): value.strip() for key, value in zip(keys, values)}
您的代码循环遍历这两个文件,并且在每个循环之后,key
和value
仍然绑定到每次迭代的最后一个值。