实现以下结果的快速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'}]
如果你有更多的项目,模式应该是相同的…