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)]]
替换?用python单线列表comprenhension。 它可行吗?
如果我这样做:
>>> [(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循环来做,但我很惊讶我找不到用列表理解来做到这一点的方法......答案 0 :(得分:4)
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