删除部分字符串我有一个字符串的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