假設我想在Python中將'abc'更改爲'bac'。什麼是最好的方法來做到這一點?
我想到的是以下
tmp = list('abc')
tmp[0],tmp[1] = tmp[1],tmp[0]
result = ''.join(tmp)
假設我想在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」 =「脊樑」你可能想給我們你需要如何分割你的字符串更多的細節一樣簡單。它總是隻交換第一位數字?
你不能修改字符串,它們是不可變的。如果要修改的地方的列表,你可以在你的例子不喜歡它,或者如果你想更換可以用切片訪問的元素,你可以使用切片分配:
tmp = list('abc')
tmp[0:2] = tmp[1::-1] # replace tmp[0:2] with tmp[1::-1], which is ['b', 'a']
result = ''.join(tmp)
我希望你不是活得只是想'str.replace'? – 2012-02-25 03:36:23