假设您有一个字符串 s
和一个整数数组 roll
。我想根据 roll
中的数字将 s
中的每个字母递增1。例如,如果 s = "abc"
和 roll = [1,2]
,那么输出将是 s = "ccc"
。在
当我运行下面的代码时,我一直得到原始字符串 s
为什么会这样?在
def rollTheString(s, roll):
for i in range(0, len(roll)):
for j in range(0,i):
s[j] = (chr(ord(s[j])+1));
return s;
Tags:
字符串是不可变的,因此不能通过切片来更改它们。您需要创建一个新的字符串,最好是通过使用
join
进行理解。在看看你的嵌套循环,你可能正在创建一个累加的各种类型。您甚至没有使用
roll
中的值,只是使用了它的长度。在我把你的问题分成两部分:
s
添加到每个字符的偏移量。在join
方法根据偏移量创建一个新字符串。在您得到的错误应该是:
这是因为在Python中,字符串是不可变的,因此不能适当地更改它们的字符。在
考虑以下问题:
^{pr2}$你可以用这个
相关问题 更多 >
编程相关推荐