Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用del和索引从列表中删除元素_Python_List_Del - Fatal编程技术网

Python 如何使用del和索引从列表中删除元素

Python 如何使用del和索引从列表中删除元素,python,list,del,Python,List,Del,我有一个需要删除所有2的列表: L = [1, 2, 3, 2, 4, 8, 2] 我还有L中所有2的索引: myIndex = [1, 3, 6] 如何使用del删除L上的所有2 我尝试过删除[myIndex],但没有成功。这是因为每次删除时,索引都会变为off-by-1,列表也会变短。更具python风格的方法是将仍然有效的所有内容收集到一个新列表中。这可以通过以下简单的列表理解来完成: L2 = [i for i in L if i != 2] >>> L2 [1,

我有一个需要删除所有2的列表:

L = [1, 2, 3, 2, 4, 8, 2]
我还有L中所有2的索引:

myIndex = [1, 3, 6]
如何使用
del
删除L上的所有2


我尝试过删除[myIndex],但没有成功。

这是因为每次删除时,索引都会变为off-by-1,列表也会变短。更具python风格的方法是将仍然有效的所有内容收集到一个新列表中。这可以通过以下简单的列表理解来完成:

L2 = [i for i in L if i != 2]

>>> L2
[1, 3, 4, 8]
或者,您可以使用:


您可以在for循环中使用
del
,确保索引按相反顺序排序:

for i in sorted(myIndex, reverse=True):
    del L[i]


您可以使用删除功能删除2的所有元素

for i in range(L.count(2)):
    L.remove(2)
print(L)
[1, 3, 4, 8]
for i in range(L.count(2)):
    L.remove(2)