目前我收集了数十万个ID作为整数,我正在执行以下任务(假设此集合暂时存储在列表cache
中):
cache = list()
# lets say this cache is populated
for x in range(0,1000000):
if x not in cache:
#do_something
使用列表搜索not in
某些内容对我来说有多贵?我是否会从使用其他数据结构中受益,如果是这样,哪一个最好?
答案 0 :(得分:4)
答案 1 :(得分:1)
如果您可以通过生成器在cache
中创建数据,则可以放弃创建大约1e5的列表并节省内存。然后,您只需使用以下内容测试x not in
:
desired_id = 123456
cache = some_function_to_generate_integer_ids() # cache is a generator
print desired_id in cache
如果False
不在缓存中,则会打印desired_id
。