回答:
試してください:
>>> t = ((1, 'a'),(2, 'b'))
>>> dict((y, x) for x, y in t)
{'a': 1, 'b': 2}
dict((x, y) for x, y, z in t)
またはdict((x, (y, z)) for x, y, z in t)
タプルとして2番目と3番目の値を取得すること。
少し簡単な方法:
>>> t = ((1, 'a'),(2, 'b'))
>>> dict(map(reversed, t))
{'a': 1, 'b': 2}
reverse
明示的に綴られているのでこれが好きです。
map
は)マップされるものが別の組み込み関数(などreversed
)である場合、内包よりも高速であることを示唆しています。他のほとんどの場合、その逆が当てはまります。しかし、推測するよりも
Python 2.7を使用している場合は、さらに簡潔になります。
>>> t = ((1,'a'),(2,'b'))
>>> {y:x for x,y in t}
{'a':1, 'b':2}
dict(zip(*zip(*t)[::-1]))
。これは遅く、醜く、より多くのメモリを使用しています。