擅长:python、mysql、java
<p>您可以使用列表理解并使用<a href="http://docs.python.org/2/library/functions.html#range" rel="nofollow">^{<cd2>}</a>的<code>step</code>参数:</p>
<pre><code>[shv[i:i+2] for i in range(0, len(shv)-1, 2)]
</code></pre>
<p>对于任意<code>n</code>:</p>
<pre><code>def my_awesome_grouping_function(shv, n):
return [shv[i:i+n] for i in range(0, len(shv)-(n-1), n)]
</code></pre>
<p>演示:</p>
<pre><code>>>> shv="abcdef"
>>> [shv[i:i+2] for i in range(0, len(shv)-1, 2)]
['ab', 'cd', 'ef']
>>> [shv[i:i+3] for i in range(0, len(shv)-2, 3)]
['abc', 'def']
</code></pre>
<p>我修剪了上界,因为我想你不会想要任何尾随的不完整对。你…吗?如果你去<code>len(shv)</code>,我相信你会得到最后一个元素中剩下的<code>len(shv) % n</code>个字母。你知道吗</p>
<pre><code>>>> shv="abcdefgh"
>>> [shv[i:i+3] for i in range(0, len(shv), 3)]
['abc', 'def', 'gh']
>>> [shv[i:i+3] for i in range(0, len(shv)-1, 3)]
['abc', 'def', 'gh']
>>> [shv[i:i+3] for i in range(0, len(shv)-2, 3)]
['abc', 'def']
</code></pre>
<p>(正如您在上面看到的,它必须是<code>len(shv)-(n-1)</code>才能进行修剪。)</p>