擅长:python、mysql、java
<p>这非常适合<a href="https://docs.python.org/2/library/itertools.html#itertools.groupby" rel="nofollow">^{<cd1>}</a>,它允许您使用键函数将iterable中的项分组。组将累积,直到键函数的返回值发生更改,此时<code>group</code>by将生成键函数的返回值,并在累积组上生成迭代器。在本例中,如果字母是元音,我们希望键函数返回<code>True</code>。这样,我们将得到一组连续的辅音,以及一组连续的元音从<code>groupby</code>返回:</p>
<pre><code>from itertools import groupby
vowels = {'a', 'e', 'i', 'o', 'u'} # set instead of list, because lookups are O(1)
def oppish(phrase):
if not phrase:
return False
out = []
for is_vowel, letters in groupby(phrase, lambda x: x in vowels):
out.append(''.join(list(letters)))
if not is_vowel:
out.append('op')
return ''.join(out)
print oppish('street')
print oppish('cow')
</code></pre>
<p>输出:</p>
^{pr2}$