[英]python string in-place modification
乡亲们
假设我想在Python中将'abc'更改为'bac'。 最好的方法是什么?
我在想以下
tmp = list('abc')
tmp[0],tmp[1] = tmp[1],tmp[0]
result = ''.join(tmp)
您永远不会在原位编辑字符串,字符串是不可变的。
您可以使用列表来完成此操作,但这浪费了代码和内存。
为什么不做:
x = 'abc'
result = x[1] + x[0] + x[2:]
或(个人收藏)
import re
re.sub('(.)(.)', r'\2\1','abc')
这可能是作弊,但是如果您真的想在地方进行编辑 ,并且正在使用2.6或更早版本,请使用MutableString(在3.0中已弃用)。
from UserString import MutableString
x = MutableString('abc')
x[1], x[0] = x[0], x[1]
>>>>'bac'
话虽这么说,解决方案通常不像'abc'='bac'那样简单。您可能想向我们提供更多有关如何拆分字符串的详细信息。 是否总是只交换第一位数字?
您不能就地修改字符串,因为它们是不可变的。 如果要在适当位置修改列表,则可以像在示例中那样进行修改,或者如果可以使用切片访问要替换的元素,则可以使用切片分配:
tmp = list('abc')
tmp[0:2] = tmp[1::-1] # replace tmp[0:2] with tmp[1::-1], which is ['b', 'a']
result = ''.join(tmp)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.