Skip to main content
 首页 » 编程设计

python之获取一个列表并打印所有不等于 0 的元素的索引

2025年05月04日19Terrylee

我必须获取一个列表,例如 [2,2,0,2],然后我需要为列表中不为 0 的元素返回一个新的索引列表,因此对于 [2, 2,0,2] 我需要返回 [0,1,3]。或者对于 [1,0,1,1],我需要返回 [0,2,3]。

def test(B): 
    for k in list(B): 
        if k > 0: 
            result = [] 
            for i in range(len(B)): 
                result.append(i) 
        return result 
test([2,2,0,2]) 
->[0,1,2,3] 

我的问题是所有的索引都被返回了,我试图解决这个问题但没有成功。如果有人能帮助我,那就太好了,谢谢。

请您参考如下方法:

您可以使用 enumerate巧妙地实现这一目标:

def legal(B): 
    return [i for i, x in enumerate(B) if x] 
    # or if you want to cover more than numbers 
    # return [i for i, x in enumerate(B) if x != 0] 
 
>>> legal([2,2,0,2]) 
[0, 1, 3] 
>>> legal([1,0,1,1]) 
[0, 2, 3]