重要:value
がリストの場合、key
とそのリストの各項目に対して複数のkey, value
タプルを取得したいとします。ディクショナリ内の値は、少なくとも文字列、int、およびリストを含む複数の型からなります。Python辞書をタプルのリストに簡潔に変換するにはどうしたらいいですか?
私は以下の解決策を持っていますが、これを行うためのより簡潔な方法があるかどうかは疑問です。
# Sample data
d = {'key1': 'string1',
'key2': 15,
'key3': ['item1', 'item2', 'item3', 'item4']}
# This code does what I want
parameters = []
for k, v in d.iteritems():
if isinstance(v, str):
parameters.append((k ,v))
elif isinstance(v, int):
parameters.append((k, v))
elif isinstance(v, list):
for x,y in zip(itertools.repeat(k), v):
parameters.append((x, y))
else:
continue
parameters
# [('key1', 'string1'),
# ('key2', 15),
# ('key3', 'item1'),
# ('key3', 'item2'),
# ('key3', 'item3'),
# ('key3', 'item4')]
がわかりました、ありがとうございました。私は文字列とintを明示的にチェックしました。これは、私が下流で扱うことのできない奇妙なタプルを与えるかもしれない他の型を除外したかったからです。 – John