def move_chars(s, index):
to_index = s.find('__') # index of destination underscores
chars = list(s) # make mutable list
to_move = chars[index:index+2] # grab chars to move
chars[index:index+2] = '__' # replace with underscores
chars[to_index:to_index+2] = to_move # replace underscores with chars
return ''.join(chars) # stitch it all back together
print(move_chars('ABAB__AB', 0))
print(move_chars('__ABABAB', 3))
3条答案
按热度按时间jvlzgdj91#
Python字符串是不可变的,所以你不能修改一个字符串,而是创建一个新的字符串。
如果希望能够修改字符串中的单个字符,可以将其转换为字符列表,对其进行处理,然后将该列表联接回字符串。
x8diyxa72#
我想这应该去评论区,但我不能评论,因为缺乏声誉,所以...
你可能会坚持使用列表索引交换,而不是使用
.pop()
和.append()
。.pop()
* 可以 * 从任意索引中删除元素,但一次只能删除一个,而.append()
* 只能 * 添加到列表的末尾。因此,它们非常有限,在这类问题中使用它们会使代码复杂化。因此,最好坚持使用索引交换。
abithluo3#
诀窍是使用列表切片来移动字符串的一部分。