Supprimer le premier caractère d'une chaîne
Je voudrais enlever le premier caractère d'une chaîne.
Par exemple, ma chaîne commence par un :
et je veux supprimer cela seulement. Il y a plusieurs occurrences de :
dans la chaîne qui ne doivent pas être supprimées.
J'écris mon code en Python.
4 réponses
Python 2.x
s = ":dfa:sif:e"
print s[1:]
Python 3.x
s = ":dfa:sif:e"
print(s[1:])
Les Deux tirages
dfa:sif:e
Votre problème ne semble pas clair. Vous dites que vous voulez supprimer un caractère à partir d'une certaine position" dire ensuite que vous souhaitez supprimer un caractère particulier.
Si vous avez seulement besoin de supprimer le premier caractère, vous feriez:
s = ":dfa:sif:e"
fixed = s[1:]
Si vous voulez supprimer un caractère à une position particulière, vous feriez:
s = ":dfa:sif:e"
fixed = s[0:pos]+s[pos+1:]
Si vous devez supprimer un caractère particulier, dites ':', la première fois qu'il est rencontré dans une chaîne, alors vous feriez:
s = ":dfa:sif:e"
fixed = ''.join(s.split(':', 1))
En Fonction de la structure de la chaîne, vous pouvez utiliser lstrip
:
str = str.lstrip(':')
Mais cela supprimerait tous les deux-points au début, c'est-à-dire si vous avez ::foo
, le résultat serait foo
. Mais cette fonction est utile si vous avez également des chaînes qui ne commencent pas par deux-points et que vous ne voulez pas supprimer le premier caractère.
Suppression d'un caractère:
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))
, Il supprime tous les caractères qui sont dans les index; vous pouvez l'utiliser dans votre cas avec del_char(your_string, [0])