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.

Hossein
la source

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
Sven Marnach
la source
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))
Spaceghost
la source
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.

Félix Kling
la source
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])

Fourmi
la source