您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么python中的列表操作在功能范围之外运行?

为什么python中的列表操作在功能范围之外运行?

简短的答案是因为列表是 ,整数是 。

您无法在适当的位置对整数进行突变,因此我们将其称为“不可变”。考虑到这一点,诸如在整数上加法之类的操作不会修改原始对象,而是返回一个新值- 因此您的原始变量将保持不变。因此,如果我们存储对整数的引用,则只要我们不更改它们之一,它们就只会是同一对象:

>>> foo = 1
>>> bar = foo
>>> foo is bar
True
>>> foo += 2
3
>>> foo
3
>>> bar
1
>>> foo is bar
False

在另一方面列表是“可变的”(可以修改相同的对象基准),和类似的操作pop()发生变异的list就地,改变原。这也意味着,如果您编辑对诸如的可变对象的引用list,原始对象也将被更改:

>>> baz = [1, 2, 3, 4, 5]
>>> qux = baz
>>> qux is baz
True
>>> baz.pop()
5
>>> qux
[1, 2, 3, 4]
>>> baz
[1, 2, 3, 4]
>>> qux is baz
True
python 2022/1/1 18:35:50 有226人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶