python解压缩列表字典
问题描述:
d = {
'a': [1, 2, 3],
'b': [4, 5, 6]
}
def magic_fun(d):
??
magic_fun(d) ->
[[('a', 1), ('a', 2), ('a', 3)],
[('b', 4), ('b', 5), ('b', 6)]]
替换??与蟒蛇单线列表comprenhension。 它可行吗?python解压缩列表字典
如果我这样做:
>>> [(key, value) for key, values in d.iteritems() for value in values]
[('a', 1), ('a', 2), ('a', 3), ('b', 4), ('b', 5), ('b', 6)]
但我松列表的第一级。一切都变平了......
PS:这对我来说并没有什么用处,我可以用for循环做,但我很惊讶,我找不到一种方法来用list-comprehension来做。
答
def magic_fun(d):
return [[(key,el) for el in value] for key,value in d.items()]
# for key,value in d.items():
# element_list = []
# for el in value:
# element_list.append((key,el))
# yield element_list
先生,这的确是对的。 – 2014-10-06 17:50:24