Python meilleure façon de supprimer des caractères à partir de la chaîne par index
Je suis la suppression d'un char de la chaîne comme ceci:
S = "abcd"
Index=1 #index of string to remove
ListS = list(S)
ListS.pop(Index)
S = "".join(ListS)
print S
#"acd"
Je suis sûr que c'est pas la meilleure façon de le faire.
MODIFIER
Je n'ai pas mentionné que j'ai besoin de manipuler une chaîne de taille avec une longueur de ~ 10^7.
Il est donc important de se soucier de l'efficacité.
Quelqu'un peut m'aider. Qui pythonic façon de le faire?
- veuillez garder à l'esprit la question. Ce n'est pas en double.
- Il est en double, veuillez jeter un oeil à la première réponse de la question.
- Il est très en double. Toutes les réponses sont à peu près double de trop (y compris le mien).
- Vote pour rouvrir depuis l'OP veut une solution viable pour une séquence de ~10^7 éléments - la question marqué en double est pour "ordinaire" de la chaîne de tailles.
- veuillez reformuler votre question d'inclure votre strign taille. (ou de poser une autre question tout)
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ignorer toutes les opérations sur la liste avec le tranchage:
ou plus généralement
Beaucoup de réponses à votre question (y compris ceux de ce genre) peut être trouvé ici: Comment faire pour supprimer un caractère à partir d'une chaîne à l'aide de python?. Toutefois, cette question est nominalement à propos de la suppression par la valeur, et non pas par l'index.
list
et de mettre en œuvre une coutume__str__
méthode.numpy
tableau pour quelque chose de cette taille. Si vous vous souciez de efficace, vous ne devriez pas l'utiliser pur Python dans la première place.realloc
sous le capot. Être prudent sur la façon dont vous utilisez les listes de trop.De découpage est la meilleure et la plus facile d'approche que je pense, voici quelques autres alternatives:
Rappelez-vous que l'indexation est basée sur zéro.
Vous pouvez remplacer l'Indice de caractère avec "".
Index = 2
car il permettra également de supprimer la valeur à5
.Index = 5
? Mon point est que la suppression/remplacement par la valeur ne sera jamais une alternative sûre à la suppression ou le remplacement par de l'indice dans le cas général, donc pas de upvote.