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

2024-06-16 15:07:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我知道我的输入数据中没有零(它是从一个文件中读取的,我已经确定这个文件中没有零),但是出于某种原因,Spotlight中的检查表明在item 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")

只有第二部分打印任何输出。第一个似乎检测不到任何零

这让我很困惑。为了澄清,item id是int64的NumPy数组。前10个条目看起来是这样的(我可以提供一个包含67000个左右条目的文件,所以你们可以检查我是否愚蠢,并且确实没有零):

1339
1129
1953
1343
1061
1287
1405
31
3671
1293

谢谢你的帮助


Tags: 文件数据inididsifis序列