You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表推导时如何展开函数返回的元组避免嵌套结构?

解决方案

你可以通过以下两种仅调用一次f(x)的方式实现需求,两种方案都不会产生嵌套元组:

方案1:星号解包(Python 3.0+支持,语法更简洁)

在元组内对f(x)的返回值做可变长度解包,直接将返回的两个元素展开到外层元组中:

def f(x):
    return x, x+1

list_1 = [5, 8]
list_2 = [(100, *f(x)) for x in list_1]

运行后list_2的结果就是你预期的[(100, 5, 6), (100, 8, 9)]。

方案2:元组拼接(全Python版本兼容)

把固定前缀封装为单元素元组,和f(x)返回的元组直接拼接:

list_2 = [(100,) + f(x) for x in list_1]

两种方案都保证每个x仅调用一次f(x),完全适配你所说的函数逻辑复杂、耗时高的场景。


内容的提问来源于stack exchange,提问作者Wartin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:39:02