交换字符串中的字符对

时间:2016-04-03 04:10:22

标签: python string list python-3.x swap

好的,我对Python很陌生,不知道如何做到这一点:

我需要取一个字符串,说' ABAB__AB',将其转换为列表,然后取出我要移动的对的前导索引并将该对与__交换。我认为输出应该是这样的:

move_chars('ABAB__AB', 0) '__ABABAB'

和另一个例子:

move_chars('__ABABAB', 3) 'BAA__BAB'

老实说不知道怎么做。

3 个答案:

答案 0 :(得分:0)

Python字符串是不可变的,因此您无法真正修改字符串。相反,你创建一个新的字符串。

如果您希望能够修改字符串中的单个字符,可以将其转换为字符列表,对其进行处理,然后将列表重新加入字符串中。

chars = list(str)
# work on the list of characters
# for example swap first two
chars[0], chars[1] = chars[1], chars[0]
return ''.join(chars)

答案 1 :(得分:0)

我认为这应该转到评论部分,但由于缺乏声誉我无法评论,所以...

您可能希望坚持使用列表索引交换,而不是使用.pop().append().pop() 可以从任意索引中删除元素,但一次只能删除一个元素,而.append()只能 添加到列表的末尾。因此它们非常有限,并且会使您的代码在这类问题中使用它们变得复杂。

所以,好吧,最好坚持用索引进行交换。

答案 2 :(得分:0)

诀窍是使用列表切片来移动字符串的一部分。

split