cari

Rumah  >  Soal Jawab  >  teks badan

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

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

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

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

membalas semua(5)saya akan balas

  • 巴扎黑

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

    capitalize ialah kaedah rentetan dan c[0:2] ialah senarai, jadi anda akan mendapat ralat semasa memanggil captitalize.

    c = ['zz','yy','xx'] 
    c = [string.capitalize() for string in c]

    Anda juga boleh melakukan ini:

    c = ['xx', 'yy', 'zz']
    c = ' '.join(c).title().split()

    P.S. Apabila menggunakan senarai, jika anda ingin mengendalikan keseluruhan senarai, tidak perlu menggunakan penghirisan c[0:2] Ini adalah pendekatan yang tidak perlu di sini.

    Untuk rujukan anda!


    @moling3650, menggunakan title benar-benar idea yang menarik capitalize hanya akan menggunakan huruf besar pada perkataan pertama rentetan, manakala title akan menggunakan huruf besar semua perkataan dalam rentetan .

    Lihat contoh:

    >>> string = 'my name is dokelung'
    >>> string.capitalize()
    'My name is dokelung'
    >>> string.title()
    'My Name Is Dokelung'

    Jadi ini berfungsi:

    >>> c = ['xx', 'yy', 'zz']
    >>> ' '.join(c).title().split()
    ['Xx', 'Yy', 'Zz']

    balas
    0
  • ringa_lee

    ringa_lee2017-04-17 17:52:28

    [_.capitalize() for _ in c]

    balas
    0
  • 迷茫

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

    Tulis sesuatu yang berbeza

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

    balas
    0
  • 黄舟

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

    Objek senarai tidak mempunyai kaedah huruf besar

    balas
    0
  • 巴扎黑

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

    Tulis sesuatu yang berbeza

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

    balas
    0
  • Batalbalas