gpt4 book ai didi

python - 是否有不存储值的类 Set 对象?

转载 作者:行者123 更新时间:2023-11-28 16:48:48 24 4
gpt4 key购买 nike

我想要一种数据类型,它可以让我有效地跟踪已“添加”到它的对象,从而允许我测试成员资格。我不需要任何其他功能。

据我所知,Python 没有这样的数据类型。最接近我想要的是集合,但集合将始终存储值(我不需要)。

目前我能想到的最好办法是获取每个对象的 hash() 并将其存储在一个集合中,但在较低级别正在计算哈希的哈希,并且哈希字符串被存储为一个值。

有没有办法只使用 Sets 的低级查找功能而不实际指向任何东西?

最佳答案

基本上,不,因为正如我在评论中指出的那样,两个不相等的对象完全有可能共享相同的哈希键。

散列键不是指向任何对象或对象,而是指向包含零个或多个对象的桶。然后,集合实现需要对其中的每一个进行相等比较,以确定对象是否在集合中。

因此,您始终至少需要足够的信息来进行相等比较。如果您有非常大的对象,其相等性可以根据其数据的子集来确定,比如 2 或 3 个字段,您可以考虑创建一个仅包含这些字段的新对象并将其存储在集合中而不是整个对象中。

关于python - 是否有不存储值的类 Set 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com