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}]
# ...

谢谢,

4

2 回答 2

2

您正在将附加的 dict 添加到值中的每个列表中,这些列表本身就是列表。这些是可变的,所以只需直接引用这些内部列表:

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

注意.copy()那里的使用;yourotherdict我们正在为每次追加创建一个新的结构副本,否则它们都将是相同的字典,并且操纵一个将操纵每个列表中的所有引用。

于 2012-08-07T07:36:48.510 回答
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'}]]}
于 2012-08-07T08:28:17.040 回答