gpt4 book ai didi

python - 引用python中的列表容器理解for循环

转载 作者:太空狗 更新时间:2023-10-30 00:30:33 26 4
gpt4 key购买 nike

我的问题是关于以下 for 循环:

x=[[1,2,3],[4,5,6]]
for v in x:
v=[0,0,0]

这里如果你打印 x 你会得到 [[1,2,3],[4,5,6]].. 所以改变的 v 并不是对 x 中列表的真正引用。但是,当您执行以下操作时:

x=[[1,2,3],[4,5,6]]
for v in x:
v[0]=0; v[1]=0; v[2] =0

然后你得到 x 作为 [[0,0,0],[0,0,0]]。如果 x 中的列表很长,甚至做这样的事情,这就有点困难了:

x=[[1,2,3],[4,5,6]]
for v in x:
for i in v:
i = 0

将给我 x 作为 [[1,2,3],[4,5,6]]。我最好的选择是使用 for i in xrange(0,3): v[i]=0 ..虽然我仍然想知道这里发生了什么以及其他选择是什么时候我有列表列表或更多嵌套列表。

最佳答案

当python执行v = [0, 0, 0]时,是

  1. 创建一个包含三个零的新列表对象。
  2. 将对新列表的引用分配给名为 v 的标签

v 之前是否引用其他内容并不重要。

如果你想改变当前被v引用的列表的内容,那么你不能使用v =语法。您必须像您提到的那样为其分配元素,或者使用 Sven 指出的切片符号 v[:] =

关于python - 引用python中的列表容器理解for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5917244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com