2012-08-07 22 views
0

我現在有一本字典,看起來像這樣:附加一個快譯通到快譯通

{'BOB': [['AUDI', 'BLACK', 'PETROL'], 
      ['MINI', 'PINK', 'PETROL'], 
      ['VW', 'BLUE', 'DIESEL']], 
'DAVE': [['BMW', 'PURPLE', 'PETROL'], 
      ['VOLVO', 'GREY', 'PETROL']]} 

林尋找什麼是一個字典添加到每個鍵列表。該字典會是這樣的:

{'TYRE': RUBBER, 'ALLOY': 17, 'SUNROOF': YES} 

最終的結果會是什麼樣子:

{'BOB': [['AUDI', 'BLACK', 'PETROL', 
      {'TYRE': RUBBER, 'ALLOY': 17, 'SUNROOF': YES}], 
      ['MINI', 'PINK', 'PETROL', 
      {'TYRE': RUBBER, 'ALLOY': 17, 'SUNROOF': YES}] 
# ... 

感謝,

回答

1
dic={'BOB': [['AUDI', 'BLACK', 'PETROL'], 
      ['MINI', 'PINK', 'PETROL'], 
      ['VW', 'BLUE', 'DIESEL']], 
'DAVE': [['BMW', 'PURPLE', 'PETROL'], 
      ['VOLVO', 'GREY', 'PETROL']]} 
dic1={'TYRE': 'RUBBER', 'ALLOY': 17, 'SUNROOF': 'YES'} 
for x in dic: 
    for y in dic[x]: 
     y.append(dic1) 
print dic  

輸出:

{'BOB': [['AUDI', 'BLACK', 'PETROL', {'ALLOY': 17, 'SUNROOF': 'YES', 'TYRE': 'RUBBER'}], ['MINI', 'PINK', 'PETROL', {'ALLOY': 17, 'SUNROOF': 'YES', 'TYRE': 'RUBBER'}], ['VW', 'BLUE', 'DIESEL', {'ALLOY': 17, 'SUNROOF': 'YES', 'TYRE': 'RUBBER'}]], 'DAVE': [['BMW', 'PURPLE', 'PETROL', {'ALLOY': 17, 'SUNROOF': 'YES', 'TYRE': 'RUBBER'}], ['VOLVO', 'GREY', 'PETROL', {'ALLOY': 17, 'SUNROOF': 'YES', 'TYRE': 'RUBBER'}]]} 
+0

完美 - 謝謝。 – felix001 2012-08-08 11:31:05

2

你加入你的額外字典每個列表中的值,它是名單他們自己。這些都是可變的,所以才直接引用這些內部列表:

for valuelist in yourdict.values(): 
    for sublist in valuelist: 
     sublist.append(yourotherdict.copy()) 

注意使用.copy()存在;我們正在爲每次追加創建一個yourotherdict結構的新副本,否則它們將全部爲相同的字詞,並且操作人將操縱每個列表中的所有引用。