代码:
if (query_id, _) in hashtable[bucket]:
我希望这可以正常工作like in a for loop,但它会出现此错误:
NameError:全局名称' _'未定义
hastable[bucket]
是对的列表,如果重要的是(我怀疑)。有什么想法吗?
答案 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]):