回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>目前我有一个替换字母表中特定字母的列表。字母<code>a</code>替换为<strong>第一个</strong>索引处的任何值,<code>b</code>替换为<strong>第二个</strong>索引处的任何值,依此类推。你知道吗</p>
<p>我欣赏Python的一个特性是能够执行列表理解。然而,当我尝试用连接执行此操作时,并没有得到积极的结果。你知道吗</p>
<pre><code>letters = ["ka","zu","mi","te","ku","lu","ji","ri","ki","zu","me","ta","rin","to","mo",
"no","ke","shi","ari","chi","do","ru","mei","na","fu","zi"]
def nameToNinja(str):
name = ""
for i in str:
i=i.lower()
if ord(i) >= 97 and ord(i) <= 122:
name+= letters[ord(i.lower()) - 97]
else:
name += i
return name
name = "Obama"
print("Your ninja name is: {0}".format(nameToNinja(name)))
</code></pre>
<p>我在Python中将函数转换为列表理解的尝试不起作用。事实上,我收到的唯一错误是<code>Syntax Error</code>。你知道吗</p>
<p><strong>尝试:</strong></p>
<pre><code>def nameToNinja(str):
return ''.join([letters[ord(i.lower()) - 97] if ord(i.lower()) >= 97 and ord(i.lower()) <= 122 else i
for i in str)
</code></pre>
<p>将原始函数缩短为串联列表的正确方法是什么。</em></p>