changer certaines lettres minuscules en lettres majuscules dans le string
index = [0, 2, 5]
s = "I am like stackoverflow-python"
for i in index:
s = s[i].upper()
print(s)
IndexError: string index out of range
Je comprends que, dans la première itération de la chaîne, s
, devenir le premier caractère, un "I" majuscule dans ce cas particulier. Mais, j'ai essayé de le faire sans le "s =" , à l'aide de swapchcase()
à la place, mais ça ne fonctionne pas.
En gros, je suis en train d'imprimer la s
cordes avec l'index des lettres majuscules à l'aide de Python 3.X
OriginalL'auteur Hanan N. | 2011-11-21
Vous devez vous connecter pour publier un commentaire.
Les chaînes sont immuables en Python, donc vous avez besoin pour créer un nouvel objet de type string. Une façon de le faire:
impression
OriginalL'auteur Sven Marnach
Voici ma solution. Il n'a pas d'itérer sur chaque personnage, mais je ne suis pas sûr si la conversion de la chaîne à une liste et un retour à une chaîne de caractères est plus efficace.
set()
dans ce cas.string = list(..)
est trompeuse, vous pouvez utiliserchars
(moins trompeur).Vrai. J'ai effectivement optimisé de la solution et de conversion d'une liste n'est plus nécessaire. Merci, bien. 🙂
Et oui, à l'aide de jeu est inutile mais que faire si l'OP souhaitez ajouter un index? Un ensemble a du sens dans ce but.
1. de
MutableString
docstring: plus rapide et de meilleure solution consiste à réécrire votre programme à l'aide de listes. 2.indexes = [0, 2, 5]
... OP souhaitez ajouter un index ...indexes.append(1)
.Mais si un index existe déjà, vous êtes doublement le travail de l'index. Il est tout à fait logique d'utiliser un jeu. De
set
's docstring: "Construire une collection non ordonnée d'éléments uniques." Il n'a pas besoin d'être commandés et chaque indice doit être unique, car il ne serait pas logique d'avoir des doublons.OriginalL'auteur Tyler Crompton