Supprimer le premier caractère d'une chaîne


166

Je souhaite supprimer le premier caractère d'une chaîne.

Par exemple, ma chaîne commence par un :et je souhaite le supprimer uniquement. Il y a plusieurs occurrences de :dans la chaîne qui ne doivent pas être supprimées.

J'écris mon code en Python.

Réponses:


298

python 2.x

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

python 3.x

s = ":dfa:sif:e"
print(s[1:])

les deux impressions

dfa:sif:e

13
Si c'est la réponse acceptée, la question aurait dû être «comment supprimer le premier caractère d'une chaîne».
Spaceghost le

1
@Spaceghost: L'OP déclare "Plus précisément, je veux supprimer le premier caractère."
Sven Marnach

3
Vous avez raison, je répondais juste à la différence entre le titre et le corps de la question. Avec le recul, j'aurais dû passer le temps à prendre un café. :-)
Spaceghost

35

Votre problème ne semble pas clair. Vous dites que vous voulez supprimer "un personnage d'une certaine position", puis vous dites que vous voulez 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 souhaitez supprimer un caractère à une position particulière, vous devez faire:

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

Si vous avez besoin de supprimer un caractère particulier, dites ':', la première fois qu'il est rencontré dans une chaîne, vous feriez:

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

6
Le dernier exemple pourrait être plus facilement réalisé en utilisant s.replace(":", "", 1)-
Sven Marnach

25

Selon 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 que si c'est le cas ::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 souhaitez pas supprimer le premier caractère.


2

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 avecdel_char(your_string, [0])

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.