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

Python代码无语法错误但输出不符合预期:生成器对象输出异常咨询

问题原因分析

你现在的代码里,print(i for x in range(1,i+1)) 这一行里的 i for x in range(1,i+1) 是一个生成器表达式,Python不会自动把它展开成你想要的序列,直接print的话就会输出生成器的内存地址对象,这就是为什么你看到的都是<generator object ...>这类输出。

解决方案

根据你的需求,这里有几种常见的修正方式:

方式1:用列表推导式替换生成器表达式

把生成器表达式改成列表推导式(用方括号[]代替圆括号),这样print的时候会输出完整的列表:

for i in range(1,5):
    print([i for x in range(1,i+1)])

运行后输出:

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

方式2:把生成器转换成列表再打印

如果一定要保留生成器表达式,可以用list()把它转换成列表后再print:

for i in range(1,5):
    print(list(i for x in range(1,i+1)))

输出结果和上面完全一致。

补充:如果你的预期是递增数字串(比如1、12、123这类)

如果你的实际预期不是重复数字的列表,而是逐次拼接的数字序列,那代码可以调整成这样:

for i in range(1,5):
    print(''.join(str(x) for x in range(1,i+1)))

运行后输出:

1
12
123
1234

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 08:19:08