NameError:全局名称' _'没有定义

时间:2016-05-11 09:21:37

标签: python python-2.7 nameerror

代码:

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

我希望这可以正常工作like in a for loop,但它会出现此错误:

  

NameError:全局名称' _'未定义

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

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

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

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