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
返回多个值,因此它们被压缩到一个元组中。多个值作为元组返回,并且名称和值已经在元组中,因此我可以添加元组。这对我来说非常有效!多个值作为一个元组返回,并且名称和值已经在一个元组中,所以我可以添加这些元组。这对我来说非常有效!