簡體   English   中英

Python 2.7-兩個列表作為字典

[英]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)}

您的代碼在兩個文件之間循環,每次循環后, keyvalue仍綁定到每次迭代的最后一個值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM