Pau*_*jan 8 python hash set data-structures
我有一些很长的大字符串,我想要查找它们.我不需要保存整个字符串.据我所知,set()实际存储的字符串占用了我很多的记忆.
这样的数据结构是否存在?
done = hash_only_set()
while len(queue) > 0 :
item = queue.pop()
if item not in done :
process(item)
done.add(item)
Run Code Online (Sandbox Code Playgroud)
(我的队列不断被其他线程填充,所以我无法在开始时扣除它).
Mar*_*wis 10
保留一组唯一的哈希当然是可能的:
done = set()
while len(queue) > 0 :
item = queue.pop()
h = hash(item)
if h not in done :
process(item)
done.add(h)
Run Code Online (Sandbox Code Playgroud)
请注意,由于哈希冲突,您可能会认为项目已完成,即使它不是.
如果你不能接受这种风险,你真的需要保存完整的字符串,以便能够判断你以前是否已经看过它.或者:也许处理本身就能说出来?
另外,如果您不能接受将字符串保留在内存中,请将它们保存在数据库中,或者在与字符串同名的目录中创建文件.
| 归档时间: |
|
| 查看次数: |
3521 次 |
| 最近记录: |