我有一个字符串
string='texttexttextblahblah",".'
我要做的是通过索引剪切一些最右边的字符并将其分配给string
,以便string
等于texttexttextblahblah"
我环顾四周,发现如何通过索引进行打印,而不是如何重新分配要修剪的实际变量。
答案 0 :(得分:14)
只需将您打印的内容重新分配给变量。
>>> string='texttexttextblahblah",".'
>>> string = string[:-3]
>>> string
'texttexttextblahblah"'
>>>
另外,避免对变量
使用库或内置函数(string
)
除非您确切知道您将拥有多少text
和blah
,否则请使用.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"