2017-10-06 102 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