擅长:python、mysql、java
<p>这是一个很酷的问题,我想我有一个很酷的解决方案:</p>
<pre><code>items = [1, 2, 3, 4, 5]
[(items * 2)[x:x+4] for i in range(30) for x in [i % len(items)]]
</code></pre>
<p>这给了</p>
<pre><code>[[1, 2, 3, 4],
[2, 3, 4, 5],
[3, 4, 5, 1],
[4, 5, 1, 2],
[5, 1, 2, 3],
[1, 2, 3, 4],
[2, 3, 4, 5],
[3, 4, 5, 1],
[4, 5, 1, 2],
[5, 1, 2, 3],
[1, 2, 3, 4],
[2, 3, 4, 5],
[3, 4, 5, 1],
[4, 5, 1, 2],
[5, 1, 2, 3],
[1, 2, 3, 4],
[2, 3, 4, 5],
[3, 4, 5, 1],
[4, 5, 1, 2],
[5, 1, 2, 3],
[1, 2, 3, 4],
[2, 3, 4, 5],
[3, 4, 5, 1],
[4, 5, 1, 2],
[5, 1, 2, 3],
[1, 2, 3, 4],
[2, 3, 4, 5],
[3, 4, 5, 1],
[4, 5, 1, 2],
[5, 1, 2, 3]]
</code></pre>
<p>它所做的是将你的一组东西附加到它本身(<code>items * 2</code>->;<code>[1, 2, 3, 4, 5, 1, 2, 3 ,4, 5]</code>),然后选择一个开始的地方(<code>x</code>),通过循环迭代(<code>i</code>)并根据我们拥有的项数(<code>i in [x % len(items)]</code>)调整它(可能不是正确的词)。你知道吗</p>