2个元组列表是这样的,
a=[(id, name, value_1, value_2),(id, name, value_3, value_4)..]
b=[(id_key, name, value_5, value_6),(id_key,name, value_7, value_8)..]
我想像这样合并它,
c=[(id,'', name, value_1, value_2),
(id,'', name, value_3, value_4),
..
..
('', id_key,name , value_5, value_6),
('', id_key,name , value_7, value_8)
..
]
因此,第二个列表将连接到第一个列表,并且成员已移位。
最好的办法是什么?
答案 0 :(得分:2)
使用两个列表推导来构建旧的 new 元组:
[(t[0], '') + t[1:] for t in a] + [('',) + t for t in b]
演示:
>>> a=[('id', 'name', 'value_1', 'value_2'),('id', 'name', 'value_3', 'value_4')]
>>> b=[('id_key', 'name', 'value_5', 'value_6'),('id_key','name', 'value_7', 'value_8')]
>>> [(t[0], '') + t[1:] for t in a] + [('',) + t for t in b]
[('id', '', 'name', 'value_1', 'value_2'), ('id', '', 'name', 'value_3', 'value_4'), ('', 'id_key', 'name', 'value_5', 'value_6'), ('', 'id_key', 'name', 'value_7', 'value_8')]