擅长:python、mysql、java
<p>我们可以使用<code>itertools.cycle</code>。首先检查哪个类别<code>i</code>属于<code>vowel</code>或<code>consonants</code>(不是常量)。然后从相应的列表中创建一个<code>cycle</code>,使用<code>while</code>和<code>next</code>,直到找到相应的字母。如果是a <code>vowel</code>,我们简单地附加<code>next</code>值,如果是a <code>consonant</code>,我们前进2个位置,然后附加<code>next</code>值。使用<code>.join()</code>转换回字符串之后。你知道吗</p>
<pre><code>from itertools import cycle
vwl = ['a', 'e', 'i', 'o', 'u']
cnst = ['b', 'c','d','f','g','h','j','k','l','m','n','p', 'q','r', 's','t','v','w','x','y', 'z']
s = 'hello'
new = []
for i in s.lower():
if i in vwl:
a = cycle(vwl)
while i != next(a):
next(a)
new.append(next(a))
if i in cnst:
b = cycle(cnst)
while i != next(b):
next(b)
for x in range(2):
next(b)
new.append(next(b))
res = ''.join(new)
print(res)
# lippu
</code></pre>
<p>适用于包含边缘字母的单词,<code>zumba</code>产生<code>daqfe</code></p>