python - 关于 "generator object"的说明

标签 python for-loop

有人可以解释为什么这段代码:

A = [1,2,3,4]
B = ((element) for element in A)
print(B)

产生:<generator object <genexpr> at 0x0319B490>

这段代码:

A = [1,2,3,4]
for element in A:
    print(A)

产生:

1
2
3
4 

它们对我来说似乎是一样的,但它们显然是不同的。我无法弄清楚它们之间的区别。

谢谢。

最佳答案

第一个代码是 generator expression ,因此它将在某个内存地址创建一个生成器对象。如果你想使用 list comprehension然后按照以下方式使用 []:

A = [1,2,3,4]
B = [element for element in A]
print(B)
# [1, 2, 3, 4]

这个列表理解等价于:

A = [1,2,3,4]
B = []
for element in A:
    B.append(element)

关于python - 关于 "generator object"的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22483958/

相关文章:

c++ - 编写多个 'for' 循环的干净方法

javascript - 通过 for 循环绑定(bind)的事件中的数值错误

python - 对列表的迭代无法达到我的想象。为什么?

c++ - QDom 删除节点

python - 如何更改不同屏幕中的屏幕转换

python - 左合并不起作用

python - 关闭与扭曲的连接

python - 将 Eigen::Matrix 数组从 C++ 返回到 Python,无需复制

java - 从列表中提取文件名

python:有没有办法在with语句中获取代码