Например, есть строка. EXAMPLE
,
Как я могу удалить средний символ, т.е. M
из него? Мне не нужен код Я хочу знать:
- Строки в Python заканчиваются каким-либо специальным символом?
- Что является лучшим способом - сдвигать все справа налево, начиная со среднего символа ИЛИ создания новой строки и не копируя средний символ?
Ответы:
В Python строки являются неизменяемыми, поэтому вы должны создать новую строку. У вас есть несколько вариантов создания новой строки. Если вы хотите удалить букву «М» везде, где она появляется:
Если вы хотите удалить центральный символ:
Вы спросили, заканчиваются ли строки специальным символом. Нет, ты думаешь как программист на Си. В Python строки хранятся с их длиной, поэтому любое значение байта, в том числе
\0
, может появляться в строке.источник
from __future__ import division
в начале вашего скрипта заставит Python версии 2.X вести себя как версия 3.X""
не подразумевает пустую строку. Если вы поместите его в список и присоедините к нему с помощью новых строк, то это сделает пустую строку, но во многих других местах вы можете использовать пустую строку, которая этого не сделает.Это, наверное, лучший способ:
Не беспокойтесь о смене персонажей и тому подобное. Большая часть кода Python размещается на гораздо более высоком уровне абстракции.
источник
M
не может быть уникальным. В этом случае это заменит всеM
s, верно?n
вхождения, используйтеoriginal.replace("M", "", n)
.Чтобы заменить определенную позицию:
Чтобы заменить определенный символ:
источник
l
. Тогда для первой части ограничение для pos должно бытьl-1 > pos >= 0
.Строки неизменны. Но вы можете преобразовать их в список, который является изменяемым, а затем преобразовать список обратно в строку после того, как вы изменили его.
Как показали другие, вы также можете создать новую строку, взяв из существующей строки все, кроме нужного вам символа.
источник
str.replace
метод?Вы не можете, потому что строки в Python неизменны .
Нет, они похожи на списки персонажей; длина списка определяет длину строки, и ни один символ не действует как терминатор.
Вы не можете изменить существующую строку, поэтому вы должны создать новую, содержащую все, кроме среднего символа.
источник
Используйте
translate()
метод:источник
None
удаление, кажется, не работает):translate( str.maketrans("<>", " ") )
str.maketrans( "", "", "<>")
иstr.maketrans( {"<":None,">":None })
'EXAMPLE'.translate({ord("M"): None})
UserString.MutableString
Изменчивый способ:
источник
Как удалить один символ из строки: Вот пример, где в строке есть стопка карточек, представленных в виде символов. Один из них нарисован (импортировать случайный модуль для функции random.choice (), которая выбирает случайный символ в строке). Новая строка, cardsLeft, создается для хранения оставшихся карточек, заданных строковой функцией replace (), где последний параметр указывает, что только одна «карточка» должна быть заменена пустой строкой ...
источник
Я видел это где-то здесь .
источник
Вот что я сделал, чтобы вырезать «М»:
источник
Если вы хотите удалить / игнорировать символы в строке, и, например, у вас есть эта строка,
"[11: L: 0]"
из ответа веб-API или чего-то в этом роде, например файла CSV, допустим, вы используете запросы
цикл и избавиться от нежелательных символов:
Необязательный split, и вы сможете читать значения по отдельности:
Теперь доступ к каждому значению стал проще:
Это напечатает
источник
Чтобы удалить
char
или одинsub-string
раз (только первое вхождение):ПРИМЕЧАНИЕ. Здесь
1
можно заменить любоеint
число, которое вы хотите заменить.источник
Вы можете просто использовать понимание списка.
Предположим, что у вас есть строка:
my name is
и вы хотите удалить символm
. используйте следующий код:источник
источник
Другой способ с функцией,
Ниже приведен способ удалить все гласные из строки, просто вызвав функцию
источник
Строки являются неизменяемыми в Python, поэтому оба ваших варианта означают одно и то же.
источник