擅长:python、mysql、java
<p>字符串是不可变的,因此不能通过切片来更改它们。您需要创建一个新的字符串,最好是通过使用<code>join</code>进行理解。在</p>
<pre><code>from itertools import izip_longest
s = "abc"
roll = [1, 2]
>>> "".join(chr(ord(c) + (n or 0)) for c, n in izip_longest(s, roll))
'bdc'
# a + 1 = b, b + 2 = d, c + 0 = c
</code></pre>
<p>看看你的嵌套循环,你可能正在创建一个累加的各种类型。您甚至没有使用<code>roll</code>中的值,只是使用了它的长度。在</p>
<p>我把你的问题分成两部分:</p>
<ul>
<li>确定要从<code>s</code>添加到每个字符的偏移量。在</li>
<li>使用上面说明的<code>join</code>方法根据偏移量创建一个新字符串。在</li>
</ul>