因为整数是不可变的,而list是可变的。您可以从语法中看到。在
x = x + 1你实际上是分配一个新值
x(管它是在LHS)。在中
x[0] =4,您要在列表上调用index运算符并为其指定一个参数-它实际上等效于
x.__setitem__(0, 4),这显然会更改原始对象,而不创建新对象。

因为整数是不可变的,而list是可变的。您可以从语法中看到。在
x = x + 1你实际上是分配一个新值
x(管它是在LHS)。在中
x[0] =4,您要在列表上调用index运算符并为其指定一个参数-它实际上等效于
x.__setitem__(0, 4),这显然会更改原始对象,而不创建新对象。