recherche

Maison  >  Questions et réponses  >  le corps du texte

python - 如何让列表所有元素首字母变大写?

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

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

# 提示错误
AttributeError: 'list' object has no attribute 'capitalize'
大家讲道理大家讲道理2802 Il y a quelques jours1594

répondre à tous(5)je répondrai

  • 巴扎黑

    巴扎黑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']

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-17 17:52:28

    [_.capitalize() for _ in c]

    répondre
    0
  • 迷茫

    迷茫2017-04-17 17:52:28

    Écrivez quelque chose de différent

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

    répondre
    0
  • 黄舟

    黄舟2017-04-17 17:52:28

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

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:52:28

    Écrivez quelque chose de différent

    map(str.title, c[0:2])

    répondre
    0
  • Annulerrépondre