[英]Python 2.7 - Two lists as dictionary
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行單字。 “鍵”是來自第一個文件的單詞列表,“值”是來自第二個文件的單詞列表。
每當我打印字典時,我只會得到第一對。 如何在字典中循環播放,以便得到全部140對?
我嘗試這樣做:
dictionary = {}
val = dictionary[key]
但是我在控制台上收到“ KeyError”。 我知道這是基本的東西,但是我一直在努力。
您可以使用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
。
使用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
仍綁定到每次迭代的最后一個值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.