0

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

因此,第二个列表将连接到第一个列表,其中成员移动。

最好的方法是什么?

4

1 回答 1

2

使用两个列表推导从旧的元组构建新的元组:

[(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')]
于 2013-05-01T14:41:09.197 回答