如果存在满足条件的元素,如何停止返回None的样子?

时间:2019-04-22 14:06:04

标签: python loops boolean

我正在遍历一个布尔值列表 我的条件是元素的位置> m 和if the element = True

该函数将返回元素的位置

这就是我所做的:

panda =[True, True, True, True]

def find_next (l, m): 
    for i in l:  
        if ((l.index(i) > m) and i ==True):
            return l.index(i) 

print(find_next(panda, 2))

我希望输出为3。

但是我得到了None。为什么?

1 个答案:

答案 0 :(得分:1)

l.index(i)始终返回0,因为它会在您的列表中找到True的第一个实例

顺便说一句,您不需要在每个循环上都调用l.index,因为当您本应知道正在进行的迭代时,便会多余地搜索列表。

def find_next(l, m):
    for index, value in enumerate(l):
        if index > m and value:
            return index