如何高效获取列表中最后出现的零的索引?含4种场景
高效获取列表中最后出现的零的索引(覆盖4种场景)
需要实现一个逻辑,高效获取列表中符合以下4种场景的目标索引:
场景1:列表中间存在零,后续有非零值,返回后续连续零段的首个零的索引
示例:
list1: 0.1085667 0.1034029 0.07207211 0.1463173 0 0.04980147 0.1341839 0.1463173 0.07423638 0.1646141 0.1219965 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 目标索引:list1[11]
场景2:列表开头后连续零至末尾,返回首个零的索引
示例:
list2: 3.44794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 目标索引:list2[1]
场景3:列表末尾是零,返回该零的索引
示例:
list3: 0.09008773 0.2049645 0.2023211 0.307903 0.1754935 0.1354404 0 目标索引:list3[6]
场景4:列表无零,返回最后一个元素的索引
示例:
list4: 0.1087913 0.06930553 0.07835767 0.09794708 0.07840132 0.06930553 0.05958885 0.1191777 0.06930553 0.07840132 0.05958885 0.1149965 0.1352321 0.05958885 目标索引:list4[13]
现状与需求
现有方法仅能覆盖部分场景,且不想用冗长的多条件判断,寻求简洁高效的实现方式。
现有尝试代码:
first where 0=list1<>0
内容的提问来源于stack exchange,提问作者BlackPearl
相关产品推荐
相关产品推荐

