2017-03-20 132 views
0

我有幾個相同長度的列表,我想將它們合併到一個「主字典」中。大多數由字符串組成,而其中一個是列表的列表。例如。從多個列表(字符串列表,列表列表)創建字典

directories = ['\\folder1', '\\folder2', '\\folder3'] 
tables = ['ABC', 'ABC', 'XYZ'] 
cohort = ['IN', 'OUT', 'IN'] 
variables = [[var1, var2, var3], [var1, var2, var3, var4, var5], [var1, var2]] 

我想輸出是:

dictionary = {'\\folder1': ('ABC', 'IN', [var1, var2, var3]), 
       '\\folder2': ('ABC', 'OUT', [var1, var2, var3, var, var5]), 
       '\\folder3': ('XYZ', 'IN', [var1, var2])} 

我都試過了,但不希望(B/C它會創建一些複雜的嵌套元組):

dictionary = dict(zip(directories, zip(tables, zip(cohort, variables)))) 
+0

你的'字典'是無效:您定義了兩次「IN」鍵。所以你不能構造這樣的字典。 –

+1

'ABC','IN',[var1,var2,var3]'應該是一個元組嗎?否則,這不是一個有效的字典。如果是這樣,那麼你有1太多的'zip','d = dict(zip(目錄,zip(表,隊列,變量)))' –

+0

我想要鍵來自列表「目錄」。其他三個列表:表,隊列,變量都應該是值(因此可以是非唯一的)。 ('ABC','IN',[var1,var2,var3)應該是一個元組 - 我感謝您指出 - 我將編輯! –

回答

0

謝謝,史蒂文,爲這個問題的答案:

d = dict(zip(directories, zip(tables, cohort, variables)))