我们如何有效地从列表中获取索引,其中列表中最后一个值为零,涵盖以下 4 种情况
如果列表中间有零,并且后面跟着数字,则重新调整零的索引,其中没有数字向前移动,在本例中索引为 11
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]
如果列表开始并且到列表末尾有零个连续项,则返回第一个遇到的列表索引,在本例中为索引 1
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]
如果列表有最后一个零,则返回该零的最后一个索引,在本例中为索引 6
list3:0.09008773 0.2049645 0.2023211 0.307903 0.1754935 0.1354404 0
list3[6]
如果列表没有最后一个零,则返回最后一个索引,在本例中索引为 13
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]
到目前为止,我已经想出了这个方法,但它在某些情况下有效,但在某些情况下无效。我可以添加 if else 并以不同的方式处理情况,但解决方案会很长,然后必须将其打包到函数中。想知道我们是否可以以简短、高效和干净的方式做到这一点?
first where 0=list1<>0
这是一个解决方案
另一种方法