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

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

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

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

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

membalas semua(5)
巴扎黑

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

Tulis sesuatu yang berbeza

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

Objek senarai tidak mempunyai kaedah huruf besar

巴扎黑

Tulis sesuatu yang berbeza

map(str.title, c[0:2])
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan