Python使用返回多个值的函数创建元组

Python使用返回多个值的函数创建元组,python,python-2.7,Python,Python 2.7,我有一个元组列表,需要为每个元组添加更多信息。列表如下所示: [(name1, value1), (name2, value2), (name1, value3), ...] new_list = [(name, value, *extra_info(name)) for name, value in old_list] [(name1, value1, extra1, extra2), (name2, value2, extra3, extra4), (name1, value3, ext

我有一个元组列表,需要为每个元组添加更多信息。列表如下所示:

[(name1, value1), (name2, value2), (name1, value3), ...]
new_list = [(name, value, *extra_info(name)) for name, value in old_list]
[(name1, value1, extra1, extra2), (name2, value2, extra3, extra4), (name1, value3, extra1, extra2), ...]
我有一个函数来获取每个元组的额外信息,但是我需要新的元组是平面的,我想不出一个好方法来在列表理解中做到这一点。我希望能够做这样的事情:

[(name1, value1), (name2, value2), (name1, value3), ...]
new_list = [(name, value, *extra_info(name)) for name, value in old_list]
[(name1, value1, extra1, extra2), (name2, value2, extra3, extra4), (name1, value3, extra1, extra2), ...]

不幸的是,第一个语法错误,第二个不起作用,因为
list
只接受一个参数。有没有办法在列表中解压
extra\u info
返回的元组?如果做不到这一点,解决这一问题的最可行的方法是什么

为了清楚起见,我想最后列出一个如下所示的列表:

[(name1, value1), (name2, value2), (name1, value3), ...]
new_list = [(name, value, *extra_info(name)) for name, value in old_list]
[(name1, value1, extra1, extra2), (name2, value2, extra3, extra4), (name1, value3, extra1, extra2), ...]

您必须对列表求和并将其转换为元组

new_list = [(name, value) + extra_info(name) for name, value in old_list]

您必须对列表求和并将其转换为元组

new_list = [(name, value) + extra_info(name) for name, value in old_list]
尝试:

无需将元组转换为列表…

尝试:

  new_list = [(name, value) + extra_info(name) for name, value in old_list]

不需要将元组转换为列表…

我在考虑这一点时想到的一点是使用lambda echo函数来打包新元组:

packer = lambda *x: x
new_list = [packer(name, value, *extra_info(name)) for name, value in old_list]

考虑到这一点,我想到了使用lambda echo函数来打包新的元组:

packer = lambda *x: x
new_list = [packer(name, value, *extra_info(name)) for name, value in old_list]

(名称、值)+额外信息(名称)
?假设
extra\u info
返回一个元组?@g.d.d.c Yes,
extra\u info
返回多个值,因此它们被压缩到一个元组中。
(名称,值)+extra\u info(名称)
?假设
extra_info
返回一个元组?@g.d.d.c Yes,
extra_info
返回多个值,因此它们被压缩到一个元组中。多个值作为元组返回,并且名称和值已经在元组中,因此我可以添加元组。这对我来说非常有效!多个值作为一个元组返回,并且名称和值已经在一个元组中,所以我可以添加这些元组。这对我来说非常有效!