Jos*_*ose 5 python for-loop reference list
我的问题是关于以下for循环:
x=[[1,2,3],[4,5,6]]
for v in x:
v=[0,0,0]
Run Code Online (Sandbox Code Playgroud)
这里如果你打印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
Run Code Online (Sandbox Code Playgroud)
然后你得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
Run Code Online (Sandbox Code Playgroud)
会给我x [[1,2,3],[4,5,6]].我最好的选择是在xrange(0,3)中使用i:v [i] = 0 ..虽然我仍然想知道这里发生了什么以及当我有列表或更多列表时其他选择是什么嵌套列表.
当python执行时v = [0, 0, 0],它就是
v如果之前v是对其他事物的引用并不重要.
如果要更改当前引用的列表的内容v,则无法使用该v =语法.您必须像上面提到的那样为其分配元素,或者使用v[:] =Sven所指出的切片表示法.