python - 在python中更改参数(列表)的值
问题描述
我想改变参数(列表)的值,所以我写了如下代码,但它没有正常工作。
def add1(s): # s is a list
for i in s:
i += 1
所以我改变了如下所示的代码,它工作了。但是,我想知道为什么第一个代码不能正常工作。
def add1(s):
for i in range(len(s)):
s[i] += 1
如果您知道原因并解释一下,我将不胜感激。
解决方案
i
是循环中的一个局部变量,它s
持有持有的数字。重新分配变量不会影响它最初保存的数据。
这类似于不改变的方式a
:
a = 1
b = a # This is somewhat what's happening with `for i`
b += 1 # And this is comparable to i += 1
print(a, b) # Will print 1 2, not 2 2
推荐阅读
- asp.net-web-api - 不能包含导航属性(为空)
- typescript - 如何使用映射类型删除索引签名
- python - Python静态图库生成器代码缩略图目录
- javascript - nodejs/selenium webdriver:无法将鼠标移动到所需位置
- php - 在 laravel 中找不到查看 [index]
- r - 与数据框中最接近的非 NA 值的距离
- google-apps-script - 如果从 onEdit() 调用,使用 openById() 的方法不起作用
- node.js - 使用 node.js 生成 html 元素的 Xpath
- node.js - 配置 nodemon 以刷新相同的选项卡
- r - 自动变量选择方法