2017-10-06 2 views
0

アルファベットがあるので、アルファベットの各文字がその逆にペアになっている辞書を作成したい、つまりaはzとペア、yはbなどですリスト内包のループのネストされていない2つのフレーム

私はリストの理解を使用して前記辞書を作成しようとしています。 として私のコードは次のとおり

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

の代わりに、それはY内のxをネスト同時にxとyを反復します。これを注文する正しい方法は何ですか?

答えて

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

'dictの(X).itemsのようなものでなければなりません。 – mkrieger1

-1

dict(zip(alphabet, alphabet[::-1]))。 出力は、()は `かなりこの場合、X '`と同じである

​​3210
+0

これは前に来た他の答えをちょっと盗んでしまいます。私はこれを良く見えるように編集したことを後悔します。 – mkrieger1

関連する問題