擅长:python、mysql、java
<p>这个呢:</p>
<pre><code>>>> l = [["1a","1b","1c","1d"], ["2a","2b"], ["3a","3b","3c","3d","3e"]]
>>> while l:
... x = random.choice(l)
... print x.pop(-1)
... if not x:
... l.remove(x)
1d
1c
2b
3e
2a
3d
1b
3c
3b
3a
1a
</code></pre>
<p>你可以用不同的方式来优化它,但这是一般的想法。如果您不能一次读取文件,但由于内存限制而需要迭代这些文件,也可以使用这种方法。那样的话</p>
<ul>
<li>从文件中读取一行,而不是从列表中弹出</li>
<li>检查EOF而不是空列表</li>
</ul>