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

2024-04-26 18:18:59 发布

您现在位置: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), ...]

Tags: 方法nameinfo信息列表newvalueextra
3条回答

尝试:

  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]

相关问题 更多 >