如何将(动态)数量的列表合并为元组列表



实现以下结果的快速python(2.7)方法是什么?字典a, b是动态的,可以是

original = [
[{'a1': 'a1_1', 'a2': 'a2_1'}],
[{'b1': 'b1_1', 'b2': 'b2_1'}]
]

# this should be the result
result = [
({'a1': 'a1_1'}, {'b1': 'b1_1'}),
({'a2': 'a2_1'}, {'a1': 'a1_1'}),
]

我已经尝试过enumerate(zip()),但我没有得到它…

让我们假设您的数据的格式为:

original = [
[{'a1': 'a1_1', 'a2': 'a2_1'}],
[{'b1': 'b1_1', 'b2': 'b2_1'}]
]

你可以这样重组你的数据:

x = [[list(elem.items()) for elem in item] for item in original]
# x
# [[[('a1', 'a1_1'), ('a2', 'a2_1')]], [[('b1', 'b1_1'), ('b2', 'b2_1')]]]

所以你可以在中间状态下重新组合它,像这样:

y = list(zip(x[0][0], x[1][0]))
# y
# [(('a1', 'a1_1'), ('b1', 'b1_1')), (('a2', 'a2_1'), ('b2', 'b2_1'))]
最后用 得到你的结果
result = [dict(item) for item in y]
# result:
# [{'a1': 'a1_1', 'b1': 'b1_1'}, {'a2': 'a2_1', 'b2': 'b2_1'}]

如果你有更多的项目,模式应该是相同的…

最新更新