タプルをキーと値のペアに動的に変換するにはどうすればよいですか?
私が持っているとしましょう:
tuple = ('name1','value1','name2','value2','name3','value3')
私はそれを辞書に入れたい:
dictionary = { name1 : value1, name2 : value2, name3 : value3 )
タプルをキーと値のペアに変換し、dict
コンストラクターに辞書を作成させます。
it = iter(tuple_)
dictionary = dict(zip(it, it))
zip(it, it)
イディオムは、フラットな iterable からアイテムのペアを生成し、コンストラクターに渡すことができる一連のペアを提供しますdict
。これの一般化は、itertools ドキュメントのグルーパー レシピとして利用できます。
入力が十分に大きい場合は、に置き換えzip
てitertools.izip
、一時リストの割り当てを回避します。t[i]
へのマッピングに基づく式とは異なり[i + 1]
、上記はシーケンスだけでなく、あらゆる iterable で機能します。
dictionary = {tuple[i]: tuple[i + 1] for i in range(0, len(tuple), 2)}
別の簡単な方法:
dictionary = dict(zip(tuple[::2],tuple[1::2]))
単純なループを実行するだけです。
my_dic = {}
tuple = ('name1','value1','name2','value2','name3','value3')
if len(tuple) % 2 == 1:
my_dic[tuple[-1]] = None
for i in range(0, len(tuple) - 1, 2):
my_dic[tuple[i]] = tuple[i + 1]
print my_dic