我有一个元组列表元组,我需要更多的信息添加到每个元组。该列表看起来是这样的:Python中创建一个使用函数返回多个值
[(name1, value1), (name2, value2), (name1, value3), ...]
我有一个函数来获取每个元组的额外信息,但我需要新的元组是平的,我想不出一个好办法做到这一点的列表理解。我希望能够做这样的事情:
new_list = [(name, value, *extra_info(name)) for name, value in old_list]
或
new_list = [list(name, value, *extra_info(name)) for name, value in old_list]
不幸的是,第一个是语法错误,而第二个不工作,因为list
只需要在一个参数。有没有办法将extra_info
返回的元组解压缩到列表理解中?如果没有,那么解决这个问题的最好的方法是什么?
要清楚,我想用一个看起来像这样的列表来结束:
[(name1, value1, extra1, extra2), (name2, value2, extra3, extra4), (name1, value3, extra1, extra2), ...]
'(name,value)+ extra_info(name)'?假设'extra_info'返回一个元组? – 2014-09-30 22:27:15
@ g.d.d.c是的,'extra_info'返回多个值,所以它们被打包到一个元组中。 – 2014-09-30 22:34:58