Python位置元组列表

时间:2013-05-01 14:38:48

标签: python list tuples

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)
   ..
]

因此,第二个列表将连接到第一个列表,并且成员已移位。

最好的办法是什么?

1 个答案:

答案 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')]