Python:如何有效地探查哪一个是None?

Nat*_*ion 0 python null

如果我有一个变量列表[A, B, C, D]。我如何有效地找到哪个None

我有

if None in (A, B, C, D):
    ValueError("None found.")
Run Code Online (Sandbox Code Playgroud)

但是它仅测试其中是否没有None,并且无法找到它。我可以使用for循环轻松找到它,但是请不要这样做...我需要的是

if None in (A, B, C, D):
    # Find where is None
    ValueError("None found in {?}.")
Run Code Online (Sandbox Code Playgroud)

Cih*_*han 7

假设您有以下列表:

x = [3, 5, None, 2, None]
Run Code Online (Sandbox Code Playgroud)

如果要第一个无:

x.index(None)  
Run Code Online (Sandbox Code Playgroud)

输出2,第一个最左边的索引None

如果要Nones的所有索引:

[i for i, v in enumerate(x) if v is None]  
Run Code Online (Sandbox Code Playgroud)

输出[2, 4]None列表中所有的索引。