即使列表中没有零,检查列表中是否存在零也返回True

时间:2018-09-17 16:15:04

标签: python python-3.x

因此,我正在使用Spotlight(基于PyTorch的推荐系统库),我正在尝试使用训练数据构建一组序列。创建这些序列时Spotlight进行的内部检查之一是确保项目ID都非零,因为零被用作序列中的填充值。

我知道我的输入数据中没有零(正在从我确保没有零的文件中读取),但是由于某些原因,Spotlight中的检查表明存在 商品ID列表中为零。

更奇怪的是,当我尝试这样做时会发生什么:

for id in interactions.item_ids:
    if id == 0:
        print("there is a zero ID")

# This is how Spotlight checks
if 0 in interactions.item_ids:
    print("there is a zero")

second 部分显示任何输出。第一个似乎没有检测到任何零。

这让我很困惑。需要说明的是,商品ID是int64的NumPy数组。前十个条目看起来像这样(我可以提供一个包含全部67000左右的文件,所以你们可以检查我不是很傻,并且确实没有零):

1339
1129
1953
1343
1061
1287
1405
31
3671
1293

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

事实证明,当我尝试整理MCVE时,我已解决了该问题!明确进行np.array(interactions.item_ids)可解决此问题。