次のようなリストがあります。
listedd = ['AAA', 'K', 'AAC', 'N', 'AAG', 'K',]
そして、私はそれを次のような辞書に変換したい:
{'AAA':'K', 'AAC': 'N', 'AAG':'K'}
次のようなリストがあります。
listedd = ['AAA', 'K', 'AAC', 'N', 'AAG', 'K',]
そして、私はそれを次のような辞書に変換したい:
{'AAA':'K', 'AAC': 'N', 'AAG':'K'}
リストを 2 つずつステップ実行し、結果を一緒に圧縮して、キーと値のペアになるタプルのリストを作成し、そのタプルのリストを辞書に変換します。
>>> dict(zip(l[::2],l[1::2]))
{'AAG': 'K', 'AAA': 'K', 'AAC': 'N'}
最短の方法はスライスを使用することだと思います:
>>> listedd = ['AAA', 'K', 'AAC', 'N', 'AAG', 'K',]
>>> result = dict(zip(listedd[::2], listedd[1::2]))
{'AAA': 'K', 'AAC': 'N', 'AAG': 'K'}
このコードは、リストのすべての偶数要素を奇数要素に実際にマップします。
更新: 以前の投稿を見逃していました。申し訳ありません))
iter
andを使用する別の方法zip
:
dict(zip(*[iter(listedd)]*2))
または、短いプログラムよりも長いプログラムを好む場合:
>>> listedd = ['AAA', 'K', 'AAC', 'N', 'AAG', 'K',]
>>> it = iter(listedd)
>>> z = zip(it,it)
>>> d = dict(z)
>>> print d
{'AAG': 'K', 'AAA': 'K', 'AAC': 'N'}