【发布时间】:2014-09-21 00:46:33
【问题描述】:
我是 python 新手,我想知道如何交换字符串中的两个字符。我知道字符串是不可变的,所以我需要找到一种方法来创建一个交换字符的新字符串。 具体来说,一种通用方法,它采用一个字符串和两个索引 i,j 并将 i 上的字符与 j 交换。
【问题讨论】:
标签: string python-2.7 swap
我是 python 新手,我想知道如何交换字符串中的两个字符。我知道字符串是不可变的,所以我需要找到一种方法来创建一个交换字符的新字符串。 具体来说,一种通用方法,它采用一个字符串和两个索引 i,j 并将 i 上的字符与 j 交换。
【问题讨论】:
标签: string python-2.7 swap
正如您正确指出的那样,字符串是不可变的,不能就地修改 - 但我们可以使用交换的字符创建一个新字符串。这里有一个想法:让我们将字符串转换为列表,交换列表中的元素,然后将列表转换回字符串:
def swap(s, i, j):
lst = list(s)
lst[i], lst[j] = lst[j], lst[i]
return ''.join(lst)
另一种可能的实现是使用切片和索引来操作字符串:
def swap(s, i, j):
return ''.join((s[:i], s[j], s[i+1:j], s[i], s[j+1:]))
无论哪种方式,它都按预期工作:
swap('abcde', 1, 3)
=> 'adcbe'
【讨论】: