gpt4 book ai didi

Python:只设置存在性检查?

转载 作者:太空狗 更新时间:2023-10-29 20:36:21 26 4
gpt4 key购买 nike

我有一组很多大的长字符串,我想对其进行存在性查找。我不需要保存整个字符串。据我所知,set() 实际上存储了占用大量内存的字符串。

是否存在这样的数据结构?

done = hash_only_set()
while len(queue) > 0 :
item = queue.pop()
if item not in done :
process(item)
done.add(item)

(我的队列不断被其他线程填充,所以我无法在开始时对其进行重复数据删除)。

最佳答案

当然可以只保留一组哈希值:

done = set()
while len(queue) > 0 :
item = queue.pop()
h = hash(item)
if h not in done :
process(item)
done.add(h)

请注意,由于散列冲突,您有可能认为某个项目已完成,但实际上并未完成。

如果你不能接受这个风险,你真的需要保存完整的字符串才能判断你是否曾经见过它。或者:也许处理本身能够判断?

还有一种选择:如果您不能接受将字符串保存在内存中,请将它们保存在数据库中,或者在与字符串同名的目录中创建文件。

关于Python:只设置存在性检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1333381/

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