NameError: global name '_' is not defined

NameError: global name '_' is not defined

代码:

if (query_id, _) in hashtable[bucket]:

我原以为它可以工作 like in a for loop,但它却给出了这个错误:

NameError: global name '_' is not defined

hastable[bucket] 是一个对列表,如果重要的话 (我怀疑)。有什么想法吗?

x in y 不是魔法;它与y.__contains__(x) 基本相同。因此,in 不能用占位符搜索;左边的参数被完全评估。相反,使用

if any(query_id == qid for (qid, _) in hashtable[bucket]):

在 for 循环(就像您链接的那个)中,定义了名为 _ 的变量。据我所知,你没有在任何地方定义它。您期望 _ 代表什么?

_在Python中只是一个普通的变量名,除了在交互式解释器中(它代表最后一个变量输出)。

在您使用它的概念中,它只存储最后一个输出变量。 我会选择:

if query_id in (x[0] for x in hashtable[bucket]):