首页 > 解决方案 > for 循环中不可变类型的突变尝试不会引发 SyntaxError?

问题描述

考虑以下代码。

a = [1, 2, 3]
for i in a: 
    i *= 2

a
#[1, 2, 3]

据我了解,就地操作符*=试图通过 __iadd()__. 假设type(i) == <class 'int'>它通过循环,那么本例中的 for 循环不应该引发 SyntaxError 吗?(试图改变列表中的不可变整数?)

为什么它既不改变列表元素也不引发错误?

标签: pythonlist

解决方案


推荐阅读