交换字符串中的字符

Waj*_*hat 6 string swap python-2.7

我是python的新手,我想知道如何在字符串中交换两个字符.我知道字符串是不可变的所以我需要找到一种方法来创建一个交换字符的新字符串.具体来说,一种采用字符串和两个索引i,j的一般方法,并用i交换i上的字符.

Ósc*_*pez 14

正如您所说,字符串是不可变的,不能就地修改 - 但我们可以使用交换的字符创建一个新字符串.这里有一个想法:让我们将字符串转换为列表,交换列表中的元素,然后将列表转换回字符串:

def swap(s, i, j):
    lst = list(s)
    lst[i], lst[j] = lst[j], lst[i]
    return ''.join(lst)
Run Code Online (Sandbox Code Playgroud)

另一种可能的实现是使用切片和索引来操作字符串:

def swap(s, i, j):
    return ''.join((s[:i], s[j], s[i+1:j], s[i], s[j+1:]))
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,它都按预期工作:

swap('abcde', 1, 3)
=> 'adcbe'
Run Code Online (Sandbox Code Playgroud)