每天一個(gè)Python知識(shí)點(diǎn):只用一招就將所有的英文單詞首字母變成大寫(xiě)
將英文單詞首字母變成大寫(xiě)是非常常用的文本操作,使用capitalize方法可以將一個(gè)英文單詞的首字母變成大寫(xiě)。但如何將一段文本中所有英文單詞的首字母都變成大寫(xiě)呢?最容易想到的方法是將這些英文單詞拆成獨(dú)立的單詞,然后分別使用capitalize方法將這些英文單詞的首字母變成大寫(xiě),然后再將這些單詞連接起來(lái),實(shí)現(xiàn)代碼如下:
- s = 'The weather is really nice today, very suitable for an outing.'
- arr = s.split()
- for i in range(0, len(arr)):
- arr[i] = arr[i].capitalize()
- s1 = " ".join(arr)
- print(s1)
運(yùn)行代碼看看效果:
從這段代碼可以看出,使用了3個(gè)方法:split、capitalize和join。分別用來(lái)拆分字符串;將英文單詞首字母轉(zhuǎn)換為大寫(xiě);使用特定的分隔符(本例是空格)合并列表中的字符串。
不過(guò)這段代碼好麻煩,有沒(méi)有更簡(jiǎn)單的方式呢?當(dāng)然有,鐺鐺鐺!剛出鍋的代碼來(lái)了:
- s = 'The weather is really nice today, very suitable for an outing.'
- print(" ".join([word.capitalize() for word in s.split()])) # 只用了一行代碼
夠酷吧,這里只用了一行代碼。其實(shí)這行代碼與前面的實(shí)現(xiàn)方法沒(méi)有本質(zhì)的區(qū)別,只是用了Python中通過(guò)for in語(yǔ)句生成列表的方式,將多行代碼簡(jiǎn)化成了一行代碼,Python簡(jiǎn)直太神奇了。其實(shí)啊,如果要熟悉Python API,連一行代碼都不用寫(xiě),一個(gè)方法就解決了,這就是string.capwords方法,該方法屬于string模塊,所以需要先導(dǎo)入string模塊,代碼如下:
- import string
- s = 'The weather is really nice today, very suitable for an outing.'
- print(string.capwords(s)) #將字符串中所有單詞首字母大寫(xiě)
看看簡(jiǎn)單不,別忙,還沒(méi)完呢!capwords方法的默認(rèn)分隔符是空格,如果這些英文單詞用其他符號(hào)分隔,就需要使用capwords方法的第2個(gè)參數(shù)了,看下面的例子:
- import string
- s = 'The,weather,is,really,nice,today,very,suitable,for,an,outing.'
- print(string.capwords(s, ',')) # 用逗號(hào)分隔的英文單詞
這段代碼使用capwords方法將由逗號(hào)(,)分隔的所有英文單詞的首字母轉(zhuǎn)換為大寫(xiě)字母。運(yùn)行結(jié)果如下:
- The,Weather,Is,Really,Nice,Today,Very,Suitable,For,An,Outing.
本文轉(zhuǎn)載自微信公眾號(hào)「極客起源」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系極客起源公眾號(hào)。