gpt4 book ai didi

python - 返回列表中最后一个非零元素的索引

转载 作者:太空狗 更新时间:2023-10-30 00:22:45 26 4
gpt4 key购买 nike

我得到以下格式的数据:

[-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 位。

那么如何获取列表中最后一个非零元素的索引,即使存在具有相同值的元素?

最佳答案

这个问题被标记为 numpy 但我没有看到明显的解决方案:

numpy.max(numpy.nonzero(list))

示例提供的列表:

>>> import numpy as np
>>> np.max(np.nonzero([-2, -2, 0, 0, 0, 0, 0]))
1
>>> np.max(np.nonzero([-2, 20, -1, 0, 3, 0, 0]))
4

关于python - 返回列表中最后一个非零元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41346403/

26 4 0
文章推荐: python - 将 pyspark.sql.dataframe.DataFrame 类型 Dataframe 转换为 Dictionary
文章推荐: c# - new object[] {} 与 Array.Empty()