2017-10-06 5 views
0

알파벳이 있고 알파벳의 각 문자가 그 반대로 쌍을 이루는 사전을 만들고 싶습니다. 예를 들어, a는 z와 쌍을 이루고 y는 등입니다.목록 이해를위한 두 개의 중첩되지 않은 프레임을 프레임

목록 사전 작성을 사용하여 사전을 작성하려고합니다. 내 코드는 다음과 같이

{x:y for x in alphabet for y in alphabet[::-1]}

대신 동시에 X 및 Y를 통해 반복으로는 Y에서 X 둥지. 이것을 주문하는 올바른 방법은 무엇입니까?

답변

2

당신은 사용하여 다음을 수행 할 수 있습니다

여기
{x:y for (x, y) in zip(alphabet, alphabet[::-1])} 

가 작동 예입니다

In [28]: import string 

In [29]: alphabet = string.ascii_lowercase 

In [30]: {x:y for (x, y) in zip(alphabet, alphabet[::-1])} 
Out[30]: 
{'a': 'z', 
'b': 'y', 
'c': 'x', 
'd': 'w', 
'e': 'v', 
'f': 'u', 
'g': 't', 
'h': 's', 
'i': 'r', 
'j': 'q', 
'k': 'p', 
'l': 'o', 
'm': 'n', 
'n': 'm', 
'o': 'l', 
'p': 'k', 
'q': 'j', 
'r': 'i', 
's': 'h', 
't': 'g', 
'u': 'f', 
'v': 'e', 
'w': 'd', 
'x': 'c', 
'y': 'b', 
'z': 'a'} 
0

시도

dict(zip(alphabet, alphabet[::-1])). 

출력해야 뭔가

>>> sorted(dict(zip(alpha, alpha[::-1])).items()) 
[('a', 'z'), ('b', 'y'), ('c', 'x'), ('d', 'w'), ('e', 'v'), ('f', 'u'), ('g', 't'), ('h', 's'), ('i', 'r'), ('j', 'q'), ('k', 'p'), ('l', 'o'), ('m', 'n'), ('n', 'm'), ('o', 'l'), ('p', 'k'), ('q', 'j'), ('r', 'i'), ('s', 'h'), ('t', 'g'), ('u', 'f'), ('v', 'e'), ('w', 'd'), ('x', 'c'), ('y', 'b'), ('z', 'a')] 
,369 같은
+0

'DICT (X) .items 같은 것을해야한다. – mkrieger1

-1

dict(zip(alphabet, alphabet[::-1])). 출력 (이)`거의이 경우 X``과 동일

>>> sorted(dict(zip(alpha, alpha[::-1])).items()) 
[('a', 'z'), ('b', 'y'), ('c', 'x'), ('d', 'w'), ('e', 'v'), ('f', 'u'), ('g', 't'), ('h', 's'), ('i', 'r'), ('j', 'q'), ('k', 'p'), ('l', 'o'), ('m', 'n'), ('n', 'm'), ('o', 'l'), ('p', 'k'), ('q', 'j'), ('r', 'i'), ('s', 'h'), ('t', 'g'), ('u', 'f'), ('v', 'e'), ('w', 'd'), ('x', 'c'), ('y', 'b'), ('z', 'a')] 
+0

이것은 전에 온 다른 대답을 그냥 표절하게합니다. 나는 이것을보기 좋게 편집 한 것을 후회합니다. – mkrieger1