python - 如何让列表所有元素首字母变大写?
大家讲道理
大家讲道理 2017-04-17 17:50:28
0
5
1609

希望列表 c 所有元素首字母变大写,这样写为甚么会出错?该如何写?

c=['zz','yy','xx'] 
c[0:2]=c[0:2].capitalize()

# 提示错误
AttributeError: 'list' object has no attribute 'capitalize'
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(5)
巴扎黑

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']
左手右手慢动作
[_.capitalize() for _ in c]
迷茫

Écrivez quelque chose de différent

c = [_.title() for _ in c]
黄舟

L'objet liste n'a pas de méthode majuscule

巴扎黑

Écrivez quelque chose de différent

map(str.title, c[0:2])
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal