Python 代码的不同结果

标签 python python-2.7

<分区>

我刚刚开始学习和阅读有关 Python 的知识,并且在阅读本书的前几章时遇到了理解困难的问题。我在与翻译打交道时遇到了这个问题。

这是我的问题,为什么这两个表达式中的值不同。在第一个示例中,y 的值在更改 x 后保持不变,而在下一个示例中,当更改 x 时,它也会更改y 的值。

示例 1:

>>> x = 5
>>> y = x
>>> x += 1
>>> x
6
>>> y
5

示例:2

>>> x = [5]
>>> y = x
>>> x[0] = 6
>>> x
[6]
>>> y
[6]

最佳答案

关于 python 引用.When

a = [2]
b = a

这里的ab都引用了[2],可以通过id查看/p>

>>>id(a)
3066750252L

>>>id(b)
3066750252L

两者都是相同的ID。所以a.append或者b.append都会影响ab。也就是[2 ]。这是在 mutable 对象的情况下。所以 a[0]=6 也会影响 b。如果整数,它不会影响,因为 intimmutable object.So

>>>a = 2
>>>id(a)
164911268
>>>a = a + 1
>>>a
3
>>>id(a)
164911256

这里 id 改变了。这意味着新的 int 对象被创建 3。它现在被变量 a 引用>.

希望对你有帮助

关于Python 代码的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33460226/

相关文章:

python - 如何将一串数字转换为一位整数列表?

python - Django "emulate"批量插入/更新/删除时数据库触发行为

python - 将变量转换为lambda中另一个变量的类型

eclipse - pydev Google App run Path for project must have only one segment

Python:如何在对象列表上链接方法?

python - Tkinter 的asksaveasfilename 随机忽略defaultextension

python - 在python中使用cvxpy包构建融合套索惩罚

python - 为什么 pip 在我当前的 virtualenv 之外安装 python 包?

python - 美丽汤 : Fetched all the links on a webpage how to navigate through them without selenium?

python - 获取数万个 HTTP 响应码