gpt4 book ai didi

python - 如何从列表中删除一个值,并从另一个列表中删除相同位置的值

转载 作者:行者123 更新时间:2023-11-28 20:30:03 24 4
gpt4 key购买 nike

假设我有两个列表:

x=[1,0,0,3,2,5,6,0,4,2]

y=[e,r,g,d,e,w,t,y,t,r]

我想从“x”列表中删除所有零,所有值都对应于“y”列表中零的位置,这样最后:

x=[1,3,2,5,6,4,2]

y=[e,d,e,w,t,t,r]

我试过:

for i in range(len(x)):
if x[i]==0:
del x[i]
del y[i]
return x
return y

但是,我意识到随着第 i 个索引位置的元素被删除,范围发生了变化。有没有更好的循环或方法我可以实现。

最佳答案

问题是,当您从列表中删除一个元素时,所有后面的索引都会向后移动 1,这样您删除的内容就不会留下空隙。但是,较早的索引保持不变;所以简单的解决方法是向后迭代索引。

def remove_zeros(x, y):
for i in reversed(range(len(x))):
if x[i] == 0:
del x[i]
del y[i]
return x, y

请注意,如果要返回两个结果,则必须将它们作为元组返回;否则将无法到达第二个 return 语句。

关于python - 如何从列表中删除一个值,并从另一个列表中删除相同位置的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58808523/

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