web-dev-qa-db-fra.com

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

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

Par exemple, ma chaîne commence par un : et je ne souhaite l'enlever que. Il existe plusieurs occurrences de : dans la chaîne qui ne doivent pas être supprimées.

J'écris mon code en Python.

142
Hossein

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
250
Sven Marnach

Votre problème ne semble pas clair. Vous dites que vous souhaitez supprimer "un personnage d'une certaine position", puis vous indiquez que vous souhaitez supprimer un caractère particulier.

Si vous ne devez supprimer que le premier caractère, procédez comme suit:

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

Si vous souhaitez supprimer un personnage à une position particulière, procédez comme suit:

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, vous feriez alors:

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

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 que 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 souhaitez pas supprimer le premier caractère à ce moment-là.

19
Felix Kling

supprimer 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 présents dans les index; vous pouvez l'utiliser dans votre cas avec del_char(your_string, [0])

2
Ant