python - 列表值在传递给函数后发生变化
问题描述
这个想法是为列表“a”设置静态值,但是一旦该列表通过函数的操作,它的内容似乎会发生变化。
a = [1, 3, 5]
u = []
def f(a1, num):
x = []
n = len(a1)
for i in range(n):
a1[i] = a1[i] + num
x.append(0)
for i in range(n):
x[i] = x[i] + a1[i]
#a1 = a2
return x
u = f(a, 10)
print "u = ", u
print "a = " ,a
u = f(a, 100)
print "u = ", u
print "a = " ,a
输出是:
u = [11, 13, 15]
a = [11, 13, 15]
u = [111, 113, 115]
a = [111, 113, 115]
我一直在尝试创建列表的副本并希望保留原始值,但仍然没有。
任何想法都非常感谢:)
解决方案
您是否尝试过像这样复制列表?
u = f(a[:], 10)
或者,x[i]
总是从零开始,所以我认为你可以简化
def f(a1, num):
return [a + num for a in a1]
推荐阅读
- c# - Unity + arduino 错误:指定端口未打开
- javascript - HTML CSS - 在表格单元格中心缩放 div,如弹出窗口
- docker - 在 docker 桌面列表中持久化容器/应用程序
- python - 训练分割循环
- vim - 在 Vim 中一次在单独的选项卡中打开多个文件(超过 10 个)
- phpspreadsheet - PhpSpreadsheet 自动过滤器取消选中(空白)
- return - 在未更改的表单上突然出现错误 Return without GoSub
- apache - Apache AuthLDAPBindDN 指令接受任何字段?
- android - 插件 {} 脚本块错误中允许的 id(String) 方法调用
- python - python中的类、属性和方法