在Python中按索引删除列表中的多个元素

我想按索引删除列表中的多个项目:


dS = [0, 0.02, 0, 0.04, 0.07, 0]

dN = [1, 0.02, 0.3, 0.7, 0.9]

pos = [i for i, e in enumerate(dS) if e ==0]

现在我想删除(在两个列表中)第一个列表中 0 位置的所有项目。


FFIVE
浏览 468回答 3
3回答

拉莫斯之舞

假设您有任何要删除的old_list索引列表pos:new_list = [old_list[i] for i, e in enumerate(old_list) if i not in pos]通过删除由 指定的索引处的元素,这将适用于您问题中的两个列表pos,只需替换old_list为您当前拥有的列表名称:dS = [0, 0.02, 0, 0.04, 0.07, 0]dN = [1, 0.02, 0.3, 0.7, 0.9]pos = [i for i, e in enumerate(dS) if e ==0]dS = [dS[i] for i, e in enumerate(dS) if i not in pos]dN = [dN[i] for i, e in enumerate(dN) if i not in pos]>>> dS, dN([0.02, 0.04, 0.07], [0.02, 0.7, 0.9])这适用于长度不同的列表,如上例所示。

呼唤远方

我想删除(在两个列表中)第一个列表中 0 位置的所有项目。好的,首先通过仅选择与第一个列表的非零项相同索引的项来处理第二个列表:dN = [dN[i] for i, e in enumerate(dS) if e]然后对dS(注意:filter在这种情况下将使用一个变体):dS = list(filter(None,dS))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python