重要提示:如果value
是列表,那么我要为此列表中的每个项目获取多个key, value
元组key
。字典中的值将具有多种类型,至少包括字符串,整数和列表。
我在下面有一个解决方案,但是我想知道是否有更简洁的方法可以做到这一点。
# 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')]
这是列表理解的简短版本:
>>> d = {'key1': 'string1', 'key2': 15, 'key3': ['item1', 'item2', 'item3', 'item4']}
>>> parameters = [(k, v1) for k, v in d.iteritems() for v1 in (v if isinstance(v, list) else [v])]
>>> parameters
[('key3', 'item1'), ('key3', 'item2'), ('key3', 'item3'), ('key3', 'item4'), ('key2', 15), ('key1', 'string1')]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句