我得到的数据格式如下:
[-2, -2, 0, 0, 0, 0, 0]
[-2, 20, -1, 0, 3, 0, 0]
每一行都是不同的输入。列表可能超过7个元素。我需要返回最后一个非零元素的索引位置,因此:
[-2, -2, 0, 0, 0, 0, 0]
>>> 1
[-2, 20, -1, 0, 3, 0, 0]
>>> 4
以下代码在大多数情况下都会执行此操作:
def getIndex(list):
for element in reversed(list):
if element != 0:
return list.index(element)
但是,当有两个相同的数字时,它就不起作用了,就像上面的第一个例子中那样,返回0
,因为-2
同时位于列表的第0和第1个位置。
那么,即使存在具有相同值的元素,如何获取列表中最后一个非零元素的索引呢?
清单理解的诀窍在于:
输出:
您可以迭代
reversed
列表并返回第一个不是零的项,如下所示如果函数找不到非零值,则返回
default
值。你的解决方案不断地改变列表,我认为即使是简单的
for
循环也更好:相关问题 更多 >
编程相关推荐