擅长:python、mysql、java
<p>建议:应使用二维索引。因为预先为第二维度生成索引是很昂贵的,所以我一次只做一代</p>
<pre><code>gens = [a, b, c, ...]
gen_lens = [17000000, 1024, 8192, ...]
shuffled_gens_indexes = list(range(len(gens)))
random.shuffle(shuffled_gens_indexes)
for gens_index in shuffled_gens_indexes:
shuffled_gen_items_indexes = list(range(gen_lens[gens_index]))
random.shuffle(shuffled_gen_items_indexes)
for gen_items_index in shuffled_gen_items_indexes:
yield gens[gens_index][gen_items_index]
</code></pre>
<p>这非常简单,只需从一个特定的
一次随机选择一个生成器</p>