2011-03-09 6 views
0

파이썬 사전에서 반복 처리하는 방법은?

우리가 dictinary를 가지고 있다고 가정하면 :

links={"foo":"url1","bar":"url2","baz":"url3",} 

만약 가능하다면 하나의 루프를 실행하고 싶습니다 :

for link in links: 
    ... 
    print(next_dictinary_value) 
xxxx 첫 번째를 인쇄합니다. 목적은 쌍을 이루는 다른 연결을 사용하지 않고 다른 쌍에 인쇄 (연결)하는 사이클을 만드는 모든 쌍방향 쌍 (서로 연결)입니다.

+0

마지막 문장을 이해하지 못합니다. 예상되는 출력의 예를 제공 할 수 있습니까? –

답변

3

을 나는 당신 생각 '

keys = links.keys() 
n = len(keys) 
for i in range(n): 
    thisKey = keys[i] 
    nextKey = keys[(i + 1) % n] 
    nextValue = links[nextKey] 
    print thisKey, nextValue 

그러나 당신이 어떤 순서로 키를 다시 얻을 수 있도록, 사전 정렬되지 않은 점에 유의 다음과 같은 요청을 다시.

-1

keys = links.keys()를 사용하여 모든 키를 가져올 수 있습니다. 그런 다음 키를 사용하여 사전을 반복합니다. 예 :

>>> links={"foo":"url1","bar":"url2","baz":"url3",} 
>>> k = links.keys() 
>>> for i in range(0, len(k)): 
...  print(links[ k[i] ]) 
... 
url3 
url1 
url2 

변수 i는 현재 위치를 포함합니다.

2
links={"foo":"url1","bar":"url2","baz":"url3",} 
it = iter(links) 
for link in links: 
    print it.next() 

... baz 
... foo 
... bar 

하지만이 시도 :

it = iter(links) 
it.next() 
for link in links: 
    try: 
     print it.next() 
    except StopIteration: 
     it = iter(links) 
     print it.next() 


... foo 
... bar 
... baz 

를 ".... 그것은 키의 정렬되지 않은 집합으로 사전에 생각하는 것이 가장 좋습니다 ..."

관련 문제