2014-10-10 4 views
0

Как вы используете существующий словарь и по существу добавляете элемент из списка в словарь в виде кортежа с использованием цикла for? Я сделал этот пример ниже. Я хочу взять color_dict и переформатировать его так, чтобы каждый элемент находился в формате 'R':['red',1].Создание словаря с вложенными массивами

Я получил как можно ниже, но потом не мог понять, как сделать последнюю часть.

lista = {'red':'R', 'orange':'O', 'yellow':'Y', 'green':'G', 
     'blue':'B', 'indigo':'I', 'violet':'V'} 
color_dict = {'R':1, 'O':2, 'Y':3, 'G':4, 'B':5, 'I':6, 'V':7} 

a = color_dict.keys() 
color_keys = [] 
color_vals = [] 

for x in lista[0::2]: 
    color_keys.append(x) 
for x in lista[1::2]: 
    color_vals.append(x) 

new = zip(color_keys, color_vals) 
new_dict = dict(new) 
print new_dict 

Если у кого-то есть другие предложения, которые были бы замечательными, я не понимаю, как использовать понимание dict.

+0

ли вы получаете ошибки во время выполнения кода? Я получаю 'KeyError' в цикле 'for' с' lista', но используя 'a' на своем месте производит некоторый вывод. – icedwater

+0

До того момента, как я написал, у меня нет ошибок. Но я не могу понять, как можно добавлять элементы из одного словаря в другой. – bk4488

ответ

1

В основном то, что вы хотите сделать, это проходные элементы в lista и для каждой пары color: colkey найти соответствующее значение в color_dict (индексируется colkey). И тогда вам просто нужно сшить все вместе: colkey: [color, color_dict[colkey]] - это новый элемент в новом dict для каждого элемента в файле lista.

Вы можете использовать Dict понимание, чтобы построить это:

>>> new_dict = {colkey: [color, color_dict[colkey]] for color, colkey in lista.items()} 
>>> new_dict 
{'O': ['orange', 2], 'Y': ['yellow', 3], 'V': ['violet', 7], 'R': ['red', 1], 'G': ['green', 4], 'B': ['blue', 5], 'I': ['indigo', 6]} 
+0

Извините, я не понимаю, как я это делаю. – bk4488

+0

Это отличный ответ, очень простой. Я настоятельно рекомендую работать через него, пока вы не узнаете, почему он работает, вы узнаете много нового о python! –

+0

Я не понимаю, что такое мой предмет колки. Не могли бы вы объяснить мне, что это значит? – bk4488