假设我有两个列表:
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个索引位置中的元素被删除,范围也会发生变化。有没有更好的循环或方法我可以实现。你知道吗
Tags:
您可以构造新列表,而不是删除:
啊哈,我花了很长时间想在我需要的时候弄清楚。很高兴你不用经历。你知道吗
示例:
退货
就你而言:
问题是,当您从列表中删除一个元素时,所有后面的索引都会向后移动1,这样您删除的内容就不会留下任何间隙。但是,早期的索引保持不变;因此简单的解决方法是向后迭代索引。你知道吗
请注意,如果要返回两个结果,则必须将它们作为元组返回;否则将无法到达第二个
return
语句。你知道吗相关问题 更多 >
编程相关推荐