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

Python列表声明时展开生成器元素而非返回生成器对象的实现方法

问题解决方法

你只需要使用Python的可迭代解包运算符*对生成器表达式做解包即可,它会将生成器产出的所有元素逐个插入到列表的对应位置,而非将生成器对象作为单独元素存入。

正确示例代码

# 使用*解包生成器表达式
poo = [1, 2, 3, *(value for value in range(3))]
print(poo)

运行输出:

[1, 2, 3, 0, 1, 2]

如果你需要得到示例中期望的[1, 2, 3, 1, 2, 3]结果,只需要将生成器的迭代范围调整为range(1,4)即可:

poo = [1, 2, 3, *(value for value in range(1, 4))]
print(poo)

运行输出:

[1, 2, 3, 1, 2, 3]

补充说明

如果不要求在列表声明时一次性完成,也可以调用列表的extend()方法传入生成器实现相同效果:

poo = [1, 2, 3]
poo.extend(value for value in range(1, 4))
print(poo)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:30:00