2013-03-29 4 views
1

두 개의 목록이 있다고 가정 해 봅시다.파이썬 3.3에서 루프를 통해 키와 값을 사전에 반복하십시오.

>>> List1 = ['This', 'is', 'a', 'list'] 
>>> list2 = ['Put', 'this', 'into', 'dictionary'] 

>>> d = {} 

어떻게 명시 적으로부터

>>> d = {'This': 'Put', 'is': 'this', 'a': 'into', 'list': 'dictionary'} 
+2

http://stackoverflow.com/questions/209840/map-two-lists-into-a-dictionary-in-python –

+0

'zip'에 대해 알고 계십니까? 그렇다면, 이것은 사소한 것입니다. 그렇지 않다면 [docs] (http://docs.python.org/3/library/functions.html#zip)를 읽으십시오. 그러면 간단합니다. – abarnert

답변

1

... 각 인덱스 그래서 예를 들어, 사전에 자신을 저장 할 수 있도록 값 키 목록 1과리스트 2 확인하기 위해 루프를 사용합니다 "How IX"보다는 "X에 루프를 사용하는 방법"을 물어보십시오. 이것은 zip으로 사소한 방법으로 해결하기를 바라지 않는 숙제 일 수 있습니다. 그래서, 만약에 대비해서, 나는 당신에게 힌트를 줄 것이다.

먼저, lockstep에서 두 개의 목록을 반복하는 방법이 있습니다 (길이가 같다고 가정하면 가정합니다). 맞음 다시 시도 할 방법이 아닙니다. 다시 zip입니다.하지만 교수님이 잘못된 방식으로 작업하기를 원한다면 가능합니다.

length = len(List1) 
for i in range(length): 
    print(List1[i], List2[i]) 

지금 당신은 두 목록에서 일치하는 각 x와 y에 대한 y 동일하게 d[x]을 얻는 대신 print의 루프 내에서 무엇을 파악해야합니다.

+0

이것은 일반적으로'zip()'이 있기 때문에 * bad * 방법입니다. 이것은 길이가 다른 목록에 대해 불안정한 동작을합니다. 속도가 느리며 임의의 iterables가 아닌 목록에서만 작동합니다. –

+0

그렇다면이 목록에 zip() 함수를 사용하여 각 목록에 인접한 색인이있는 사전에 넣을 수 있습니까? –

+0

@Lattyware : 답은 이미 분명히 밝히고 있는데, 이것이 잘못된 방법이라고 주장합니다. 교수가 잘못된 방식으로 일하기를 원한다면 그럴만 한 이유가 있습니다. 그게 충분히 명확하지 않니? – abarnert

관련 문제