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

Python中向列表追加元素得到generator object,问题出在哪里?

问题原因及解决方法

你的问题出在**append()方法的使用和生成器表达式的理解**上:

  • i for i in [1,2,3,4,5]是一个生成器表达式,它本身是一个可迭代对象,并非直接展开的元素集合。
  • append()的作用是把单个元素添加到列表末尾,所以你这里相当于把整个生成器对象当成一个元素塞进了answer,自然输出的是生成器的内存地址信息。

下面是几种正确的实现方式:

方法1:用extend()替代append()

extend()可以接收任意可迭代对象(生成器、列表等),并把其中的每个元素逐个添加到列表中:

answer = []
answer.extend(i for i in [1,2,3,4,5])
print(answer)  # 输出: [1, 2, 3, 4, 5]

如果直接用原列表,写法更简洁:

answer.extend([1,2,3,4,5])

方法2:遍历后逐个append()

如果一定要用append(),需要手动遍历原列表(或生成器),把每个元素单独添加:

answer = []
for i in [1,2,3,4,5]:
    answer.append(i)
print(answer)  # 输出: [1, 2, 3, 4, 5]

方法3:直接用列表推导式生成

这是最简洁的写法,直接生成目标列表:

answer = [i for i in [1,2,3,4,5]]
# 或者更直接的复制写法:answer = list([1,2,3,4,5])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:05:41