Isa*_*aac 2 python loops iterable list python-3.x
我正在运行Python3.6,并且正在使用其中包含其他列表的列表。
list_array = [[1,0,1,0,2,2],
[1,1,2,0,1,2],
[2,2,2,1,0,1]]
Run Code Online (Sandbox Code Playgroud)
我想修改名为list_array的列表,以删除子列表中所有值为2的条目。
我用于此的代码是
for k in list_array:
k = [x for x in k if x!=2]
Run Code Online (Sandbox Code Playgroud)
但是,此代码不会修改list_array。
为什么无法以这种方式替换list_array中列表中的元素?
您正在创建一个新列表,而不是分配给旧列表。您可以通过使用添加作业来解决此问题k[:] =,如下所示:
for k in list_array:
k[:] = [x for x in k if x!=2]
Run Code Online (Sandbox Code Playgroud)