擅长:python、mysql、java
<p>尝试:</p>
<pre><code>>>> s = "The boy is about to win"
>>> ''.join(c for i, c in enumerate(s) if not (c in 'aeiou' and i>1 and s[i-1].isalpha()))
'Th by is abt t wn'
</code></pre>
<h3>工作原理:</h3>
<p>如果发电机:</p>
^{pr2}$
<p>发电机的关键部件是:</p>
<pre><code>if not (c in 'aeiou' and i>1 and s[i-1].isalpha())
</code></pre>
<p>这意味着<code>s</code>中的所有字母都包括在内,除非它们不是(a)在<code>s</code>开头的元音,也不是(b)前面有一个非字母,这也意味着它们在单词的开头。在</p>
<h3>重写为<code>for</code>循环</h3>
<pre><code>def short(s):
new = ''
prior = ''
for c in s:
if not (c in 'aeiou' and prior.isalpha()):
new += c
prior = c
return new
</code></pre>