Python Удалить части строки по индексу - PullRequest
9 голосов
/ 19 августа 2010

У меня есть строка

string='texttexttextblahblah",".'

и я хочу вырезать некоторые из самых правых символов путем индексации и присвоить его string, чтобы string было равно texttexttextblahblah"

Я оглянулся и нашел, как печатать с помощью индексации, но не как переназначить эту фактическую переменную, которую нужно обрезать.

Ответы [ 4 ]

14 голосов
/ 19 августа 2010

Просто переназначьте то, что вы напечатали, переменной.

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

Кроме того, избегайте использования имен библиотек или встроенных (string) для переменных

Если вы точно не знаете, сколько *Если у вас есть 1007 * и blah, используйте .find(), как предложил Брент (или .index(x), что похоже на поиск, за исключением жалоб, когда он не находит x).

Если вы хотите этот трейлинг ", просто добавьте один к значению, которое он выбивает.(или просто find значение, которое вы на самом деле хотите разделить, ,)

mystr = mystr[:mystr.find('"') + 1]
5 голосов
/ 19 августа 2010

Если вам нужно что-то, что работает как строка, но является изменяемым , вы можете использовать bytearray

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

bytearray имеет все обычные строковые методы

4 голосов
/ 19 августа 2010

Строки являются неизменяемыми, поэтому вы не можете изменить строку на месте. Вам нужно будет вырезать нужную часть, а затем переназначить ее поверх исходной переменной.

Это то, что вы хотели? (обратите внимание, я не учел сохранение индекса в переменной, потому что я не уверен, как вы используете это):

>>> s = 'texttexttextblahblah",".'
>>> s.index('"')
20
>>> s = s[:20]
>>> s
'texttexttextblahblah'
2 голосов
/ 19 августа 2010

Я сам предпочитаю делать это без индексации: (Мой любимый раздел был отмечен как победитель по скорости и четкости в комментариях, поэтому я обновил исходный код)

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

Результат

texttexttextblahblah"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...