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

Python代码输出generator object而非分块列表问题求助

解决生成器对象输出而非预期分块列表的问题

嘿,我一眼就瞅出问题所在啦!你现在打印出来的generator object chunks at 0x05DAF8D0是生成器对象的内存标识,不是你想要的分块列表,原因很简单:

你的chunks函数用了yield关键字,这是个生成器函数——调用它的时候不会直接生成所有分块数据,而是返回一个生成器对象,它是惰性求值的,只有当你主动迭代它的时候,才会逐步产出数据。你之前的代码只是把这个生成器对象直接塞进了列表里,并没有触发它生成实际的分块内容。

两种修正方案:

方案一:直接获取分块列表

把生成器转换成列表,用list()包裹调用chunks的结果:

fruit = ['apple', 'pear', 'banana']
def chunks(l, n):
    for i in range(0, len(l), n):
        yield l[i:i+n]
list_of_lists = list(chunks(fruit, 2))
print(list_of_lists)
# 输出:[['apple', 'pear'], ['banana']]

方案二:生成包含分块列表的嵌套列表

如果你确实需要外层再套一个列表(比如原代码的[(chunks(...))]写法),同样要把生成器转成列表后再放进去:

fruit = ['apple', 'pear', 'banana']
def chunks(l, n):
    for i in range(0, len(l), n):
        yield l[i:i+n]
list_of_lists = [list(chunks(fruit, 2))]
print(list_of_lists)
# 输出:[[['apple', 'pear'], ['banana']]]

简单来说,生成器不会自动把结果吐出来,你得用list()或者for循环去“逼”它产出所有数据才行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:48:52