2011-02-09 5 views
93

Я хотел бы удалить первый символ строки.Удалить первый символ строки

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

Я пишу свой код в Python.

ответ

165
s = ":dfa:sif:e" 
print s[1:] 

печатает

dfa:sif:e 
+12

Если th является принятым ответом, тогда вопрос должен был быть «как удалить первый символ строки». – Spaceghost

+1

@Spaceghost: OP указывает: «В частности, я хочу удалить первый символ». –

+3

Вы правы, я просто отвечал на разницу между заголовком и телом вопроса. Оглядываясь назад, нужно было потратить время на кофе. :-) – Spaceghost

15

В зависимости от структуры строки, вы можете использовать lstrip:

str = str.lstrip(':') 

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

2

удаление полукокса:

def del_char(string, indexes): 

    'deletes all the indexes from the string and returns the new one' 

    return ''.join((char for idx, char in enumerate(string) if idx not in indexes)) 

удаляет все символы, которые в индексах; вы можете использовать его в своем случае с del_char(your_string, [0])

29

Ваша проблема неясно. Вы говорите, что хотите удалить «персонаж из определенной позиции», а затем повторите попытку удалить определенный символ.

Если вам нужно только удалить первый символ, который вы должны сделать следующее:

s = ":dfa:sif:e" 
fixed = s[1:] 

Если вы хотите удалить символ в определенной позиции, вы могли бы сделать:

s = ":dfa:sif:e" 
fixed = s[0:pos]+s[pos+1:] 

Если вам нужно для удаления определенного символа, скажем ':', в первый раз, когда он встречается в строке, вы должны:

s = ":dfa:sif:e" 
fixed = ''.join(s.split(':', 1)) 
+4

Последний пример может быть проще сделать с помощью 's.replace (": "," ", 1)' - –

Смежные вопросы