2014-10-10 2 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

당신이받을 수 있나요 오류 :

이를 구축하는 DICT 이해를 사용할 수 있습니까? 'for '루프에서'list'로'KeyError'를 얻지 만'a' 대신에'a'를 사용하면 약간의 결과물을 얻을 수 있습니다. – icedwater

+0

필자가 작성한 시점까지는 오류가 발생하지 않습니다. 하지만 한 사전에서 다른 사전으로 항목을 추가하는 방법을 알아낼 수는 없습니다. – bk4488

답변

1

은 기본적으로 당신이하고 싶은 lista과 (colkey에 의해 색인) color_dict의 각 값을 찾을 수 color: colkey 각 쌍의 항목을 반복하는 것입니다. 그리고 나서 모든 것을 함께 꿰맬 필요가 있습니다 : colkey: [color, color_dict[colkey]]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

이것은 아주 간단합니다. 나는 그것이 작동하는 이유를 알기 전까지 그것을 통해 작업 할 것을 강력히 권장합니다. 파이썬에 대해 많은 것을 배울 것입니다! –

+0

콜키 항목이 무엇인지 이해하지 못합니다. 그게 무엇을 의미하는지 설명해 주시겠습니까? – bk4488

관련 문제