TypeError:'int'对象不可迭代,为什么会发生

nex*_*doc 2 python int iterable-unpacking

实际上这是三个例子.

>>> result = []
>>> for k in range(10):
>>>    result += k*k

>>> result = []
>>> for k in range(10):
>>>    result.append(k*k)

>>> result = [k*k for k in range(10)]
Run Code Online (Sandbox Code Playgroud)

第一个出错.错误打印如下

TypeError: 'int' object is not iterable
Run Code Online (Sandbox Code Playgroud)

但是,第二个和第三个效果很好.

我无法理解这三个陈述之间的区别.

Ble*_*der 8

列表对象上的就地添加使用iterable的元素扩展列表.k*k不是可迭代的,因此您无法将其"添加"到列表中.

你需要进行k*k迭代:

result += [k*k]
Run Code Online (Sandbox Code Playgroud)