如果条件为true,则使用python中的any()方法返回列表的索引

PyR*_*red 0 python list python-3.x

a = [['df','37s',''],['4d','34','jd']]
for lst in a:
    if any(i=='' for i in lst):
        print(lst.index(i)) # NameError: name 'i' is not defined
Run Code Online (Sandbox Code Playgroud)

上面的代码表明了我想要做的事情.

是否有可能得到指数ilst中传回真正的any()方法,避免过度使用一个明确的for循环lst,如果又如何?

Pru*_*une 5

你只是混淆了你的下标变量的范围.尝试使用该index方法更直接的方法:

a = [['df','37s',''],['4d','34','jd']]
target = ''
for lst in a:
    if target in lst:
       print(lst.index(target))
Run Code Online (Sandbox Code Playgroud)

输出:

2
Run Code Online (Sandbox Code Playgroud)