【发布时间】:2018-05-12 03:23:19
【问题描述】:
我需要一个数据结构,让您可以在O(1) 时间内随机添加和删除元素。
这样做的原因是我需要从生成器中随机播放数据,但由于大小,我无法同时将所有内容加载到内存中。
这是一个使用示例,它会自动打乱生成器表达式生成的结果的顺序,而不会将所有内容加载到内存中:
def generator_shuffler(generator)
a = magical_data_structure_described_above
for i in generator:
a.add(i)
if len(a) > 10: yield a.poprandom()
最初我尝试了 python set(),但是从这里:Set.pop() isn't random?,似乎set() 实际上并没有以任意顺序删除项目。上面的用法如何实现数据结构?
【问题讨论】:
标签: python python-3.x algorithm data-structures