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.

121
demandé sur ndmeiri 2011-02-09 16:33:29

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
211
répondu Sven Marnach 2018-07-08 19:00:00

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))
32
répondu Spaceghost 2013-07-12 14:20:29

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.

16
répondu Felix Kling 2011-02-09 13:36:00

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])

2
répondu Ant 2011-02-09 13:40:58