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

Python中print打印生成器表达式返回generator object如何解决

问题原因

你传入print函数的(i.upper() for i in list1 if len(i) > 5)属于生成器表达式,Python默认不会自动迭代生成器输出内部元素,只会打印生成器对象的内存地址,这就是你得到<generator object <genexpr> at ...>输出的原因。

实现方案

方案1:生成器解包+指定分隔符(推荐)

用*解包生成器的所有元素作为print的位置参数,同时指定分隔符为换行符即可,不需要额外创建完整列表,处理长文本时内存效率更高:

print(*(i.upper() for i in list1 if len(i) > 5), sep='\n')

方案2:拼接为字符串后打印

直接把生成器传入join方法,将符合要求的元素拼接为带换行的完整字符串后打印:

print('\n'.join(i.upper() for i in list1 if len(i) > 5))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:00