刪除部分字符串我有一個字符串的Python通過索引
string='texttexttextblahblah",".'
,我想通過索引做的是削減一些最右邊的字符並將其分配給string
,使string
將等於texttexttextblahblah"
什麼
我環顧四周,發現如何通過索引打印,但不知道如何重新分配要修剪的實際變量。
刪除部分字符串我有一個字符串的Python通過索引
string='texttexttextblahblah",".'
,我想通過索引做的是削減一些最右邊的字符並將其分配給string
,使string
將等於texttexttextblahblah"
什麼
我環顧四周,發現如何通過索引打印,但不知道如何重新分配要修剪的實際變量。
只需重新分配您打印的變量。
>>> string='texttexttextblahblah",".'
>>> string = string[:-3]
>>> string
'texttexttextblahblah"'
>>>
此外,避免使用變量
除非你知道你到底有多少text
和blah
的具有圖書館或內建(string
)的名稱,使用.find()
布倫特建議(或.index(x)
,這就像發現,除非抱怨,當它沒有找到x
)。
如果您想要追蹤"
,只需將它加上一個值即可。 (或只是find
你真的想在分裂的價值,,
)
mystr = mystr[:mystr.find('"') + 1]
這正是我所希望的。謝謝!!! – Brian 2010-08-18 21:04:04
字符串是不可變的,所以你不能真正改變就地字符串。你需要將你想要的部分分出來,然後重新分配給原來的變量。
是這樣的東西你想要什麼? (注意,我離開了存儲索引變量,因爲我不知道你是如何使用此):
>>> s = 'texttexttextblahblah",".'
>>> s.index('"')
20
>>> s = s[:20]
>>> s
'texttexttextblahblah'
如果需要的東西,就像一個字符串,但是可變的你可以使用一個字節組
>>> s=bytearray('texttexttextblahblah",".')
>>> s[20:]=''
>>> print s
texttexttextblahblah
字節組具有所有常見字符串方法
我自己喜歡做沒有索引:(我最喜歡的分區被評論爲在速度和clearn贏家ESS中的註釋,所以我更新的原代碼)
s = 'texttexttextblahblah",".'
s,_,_ = s.partition(',')
print s
結果
texttexttextblahblah"
的
他想要「在結果中(可能是一個錯字),但是。 – 2010-08-18 21:03:52
's = s [:s.find(''')]'更高效 – 2010-08-18 21:04:20
我自己做了改變,正如我注意到的那樣,喜歡更多的pythonic分裂或分區我自己。也就是說,我更喜歡「讓它以清晰的方式工作,然後進行優化。」 – 2010-08-18 21:06:42
可能重複的[Python中刪除的字符串的最後3個字符(http://stackoverflow.com/questions/1798465/ python-remove-last-3-characters-of-a-string) – outis 2012-04-19 22:34:44