如何解决Python函数重新分配外部列表值
使用函数重新分配列表中的值时遇到麻烦。我除了变量x之外,在运行函数后保持不变。但是它以某种方式改变了。
我的代码是:
x = [0,0]
def test(j):
j[0] = "K"
return j
print (x)
t=test(x)
print (t)
print (x)
我的输出是:
[0,0]
['K',0]
['K',0]
我的预期输出是:
[0,0]
[0,0]
解决方法
您实际上并不是在创建两个列表。 t
仅将引用复制到列表x
。因此,您要在原始列表中重新分配值。听起来您想要列表的副本并在新列表上重新分配值?如果是这样,请更改此行:
t=test(x.copy())
Python中的所有参数(参数)均通过引用传递。这意味着,如果您更改函数中参数所指的内容,则更改也将反映在调用函数中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。