Python按索引删除部分字符串

时间:2010-08-18 20:50:49

标签: python string

我有一个字符串

string='texttexttextblahblah",".'

我要做的是通过索引剪切一些最右边的字符并将其分配给string,以便string等于texttexttextblahblah"

我环顾四周,发现如何通过索引进行打印,而不是如何重新分配要修剪的实际变量。

4 个答案:

答案 0 :(得分:14)

只需将您打印的内容重新分配给变量。

>>> string='texttexttextblahblah",".'
>>> string = string[:-3]
>>> string
'texttexttextblahblah"'
>>>

另外,避免对变量

使用库或内置函数(string

除非您确切知道您将拥有多少textblah,否则请使用.find()作为布伦特建议(或.index(x),就像查找一样,除非当它找不到x时抱怨。

如果你想要跟踪",只需在它启动的值中添加一个。 (或只是find您实际想要分割的值,,

mystr = mystr[:mystr.find('"') + 1]

答案 1 :(得分:5)

如果你需要像字符串一样工作的东西,但是可变的你可以使用bytearray

>>> s=bytearray('texttexttextblahblah",".')
>>> s[20:]=''
>>> print s
texttexttextblahblah

bytearray具有所有常用的字符串方法

答案 2 :(得分:4)

字符串是不可变的,因此您无法真正地就地更改字符串。您需要切出所需的部分,然后将其重新分配回原始变量。

这是你想要的吗? (注意我遗漏了将索引存储在变量中,因为我不确定你是如何使用它的):

>>> s = 'texttexttextblahblah",".'
>>> s.index('"')
20
>>> s = s[:20]
>>> s
'texttexttextblahblah'

答案 3 :(得分:2)

我自己更喜欢在没有索引的情况下执行此操作:(我最喜欢的分区在评论中被评为速度和清晰度的赢家,因此我更新了原始代码)

s = 'texttexttextblahblah",".'
s,_,_ = s.partition(',')
print s

结果

texttexttextblahblah"