2017-10-06 56 views
0

所以我有字母表,並且我想創建一個字典,其中字母表中的每個字符都與其反向配對,即a與z,b和y配對等在列表理解中構造兩個非嵌套for循環

我試圖用列表理解來創建所說的字典。 我的代碼如下:

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

而是在同一時間,通過X和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])). 

輸出應該是這樣的

​​3210
+0

'字典(X).items()'是幾乎一樣'在這種情況下X'。 – mkrieger1

-1

dict(zip(alphabet, alphabet[::-1]))。 輸出應該像

​​3210
+0

這只是剽竊了以前的其他答案。我很遺憾編輯這個看起來更好。 – mkrieger1