Maison > Questions et réponses > le corps du texte
希望列表 c
所有元素首字母变大写,这样写为甚么会出错?该如何写?
c=['zz','yy','xx']
c[0:2]=c[0:2].capitalize()
# 提示错误
AttributeError: 'list' object has no attribute 'capitalize'
巴扎黑2017-04-17 17:52:28
capitalize
est une méthode de chaîne et c[0:2]
est une liste, vous obtiendrez donc une erreur lors de l'appel de captitalize
.
c = ['zz','yy','xx']
c = [string.capitalize() for string in c]
Vous pouvez également faire ceci :
c = ['xx', 'yy', 'zz']
c = ' '.join(c).title().split()
P.S. Lorsque vous utilisez la liste, si vous souhaitez utiliser la liste entière, il n'est pas nécessaire d'utiliser le découpage c[0:2]
C'est une approche inutile ici.
Pour votre référence !
@moling3650, utiliser title
est vraiment une idée intéressante. capitalize
ne mettra en majuscule que le premier mot de la chaîne, tandis que title
mettra en majuscule tous les mots de la chaîne. .
Voir exemple :
>>> string = 'my name is dokelung'
>>> string.capitalize()
'My name is dokelung'
>>> string.title()
'My Name Is Dokelung'
Donc ça marche :
>>> c = ['xx', 'yy', 'zz']
>>> ' '.join(c).title().split()
['Xx', 'Yy', 'Zz']