Python字符串不可不知的6個(gè)小技巧分享
字符串格式化
【format】可將標(biāo)識(shí)符{}替換為元組中的值,如果{}中未指定序號(hào),則順序替代。
'{} Love {}'.format('I','U')
'I Love U'
如果{}中指定了序號(hào),則按照序號(hào)的順序替代
>>> '{0} Love {1}, {1} Love {0}'.format('I','U')
'I Love U, U Love I' #最近被蜜雪冰城洗腦了。。。
當(dāng)然,和C語(yǔ)言一樣,這種格式化用于數(shù)字轉(zhuǎn)化的情況多一些,python中通過(guò):來(lái)聲明數(shù)字轉(zhuǎn)化為字符串之后的格式
其中,
^, <, >分別表示居中、左對(duì)齊、右對(duì)齊+表示在正數(shù)前顯示+,負(fù)數(shù)前顯示 -b、d、o、x分別是二進(jìn)制、十進(jìn)制、八進(jìn)制、十六進(jìn)制
具體示例如下
>>> from math import pi
| 輸入 | 輸出 | 描述 |
|---|---|---|
| ‘{:.2f}’.format(pi) | ‘3.14’ | 保留兩位小數(shù),四舍五入 |
| ‘{:.2%}’.format(pi) | ‘314.16%’ | 保留兩位小數(shù)的百分?jǐn)?shù) |
| ‘{:+.2f}’.format(1) | ‘+1.00’ | 保留兩位小數(shù),帶符號(hào) |
| ‘{:0>5d}’.format(1) | ‘00001’ | 左側(cè)補(bǔ)0,寬度為5 |
| ‘{:>5d}’.format(1) | ‘01’ | 左側(cè)補(bǔ)空格,寬度為5 |
| ‘{:x<5d}’.format(1) | ‘1xxxx’ | 右側(cè)補(bǔ)x,寬度為5 |
| ‘{:-^5d}’.format(1) | ‘–1–’ | 兩側(cè)補(bǔ)-,寬度為5 |
| ‘{:,}’.format(1e5) | ‘100,000.0’ | 逗號(hào)分隔 |
| ‘{:.2e}’.format(1e5) | ‘1.00e+05’ | 科學(xué)計(jì)數(shù)法 |
| ‘{:b}’.format(8) | ‘1000’ | 二進(jìn)制 |
首字母大小寫
python中,字符串內(nèi)置title()函數(shù),可以將字符串內(nèi)每個(gè)詞進(jìn)行首字母大寫。
"python".title()
python字符串提供了.lower和.upper函數(shù),可以進(jìn)行大小寫轉(zhuǎn)換。據(jù)此可以將首字母重新變?yōu)樾憽?/p>
>>> def deCapitalize(string):
... return string[0].lower() + string[1:]
...
>>> capitalize("Hello")
'hello'
字符串拼接
【join】是字符串的內(nèi)置方法,可以將一個(gè)字符串列表,用特定的字符串串聯(lián)起來(lái),組成一個(gè)新的字符串,示例如下
>>> date = ['2021','3','10'] >>> '-'.join(date) '2021-3-10'
通過(guò)正則表達(dá)式統(tǒng)計(jì)字母?jìng)€(gè)數(shù)
【re】為python中的正則表達(dá)式包,其中re.findall可將正則表達(dá)式所選中的內(nèi)容挑出。在正則表達(dá)式中,方括號(hào)[]內(nèi)部的字符彼此之間是“或”的關(guān)系。
據(jù)此可以統(tǒng)計(jì)字符個(gè)數(shù),例如統(tǒng)計(jì)元音字母[aeiou]的個(gè)數(shù),可用如下方
import re
def count_vowels(str):
return len(len(re.findall(r [aeiou] , str, re.IGNORECASE)))
count_vowels( foobar ) # 3
count_vowels( gym ) # 0
變位詞
如果兩個(gè)單詞中出現(xiàn)的字母相同,且每個(gè)字母出現(xiàn)的次數(shù)也相同,則這兩個(gè)單詞互為變位詞(Anagram)。
【Counter】是collections中用以統(tǒng)計(jì)數(shù)據(jù)中元素個(gè)數(shù)的方法,其返回值是個(gè)字典,可根據(jù)這個(gè)特性來(lái)對(duì)比兩個(gè)字符串是否互為變位詞
from collections import Counter
def isAnagram(first, second):
return Counter(first) == Counter(second)
計(jì)算字節(jié)大小
將字符串轉(zhuǎn)化為utf-8編碼后,其長(zhǎng)度即為字節(jié)大小。以下方法將以字節(jié)為單位返回字符串長(zhǎng)度。
def byte_size(string):
return(len(string.encode('utf-8')))
byte_size("我愛(ài)你") # 9
到此這篇關(guān)于Python字符串不可不知的6個(gè)小技巧分享的文章就介紹到這了,更多相關(guān)Python字符串技巧內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
輕松掌握python設(shè)計(jì)模式之訪問(wèn)者模式
這篇文章主要幫助大家輕松掌握python設(shè)計(jì)模式之訪問(wèn)者模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
Python從入門到實(shí)戰(zhàn)之?dāng)?shù)據(jù)結(jié)構(gòu)篇
數(shù)據(jù)結(jié)構(gòu)中有很多樹(shù)的結(jié)構(gòu),其中包括二叉樹(shù)、二叉搜索樹(shù)、2-3樹(shù)、紅黑樹(shù)等等。本文中對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行了總結(jié),不求嚴(yán)格精準(zhǔn),但求簡(jiǎn)單易懂2021-11-11
python list中append()與extend()用法分享
列表是以類的形式實(shí)現(xiàn)的?!皠?chuàng)建”列表實(shí)際上是將一個(gè)類實(shí)例化。因此,列表有多種方法可以操作2013-03-03
pandas中Series和DataFrame的rank方法解析
pandas中的rank方法是用于數(shù)據(jù)排名的重要工具,它不返回排序后的數(shù)據(jù),而是數(shù)據(jù)的排名。rank方法可以處理相同數(shù)據(jù)的排名,通過(guò)平均排名方式解決排名沖突,并支持自定義排序規(guī)則及逆序排名。此外,DataFrame的rank方法允許在行或列上計(jì)算排名2024-09-09
python?包實(shí)現(xiàn)?urllib?網(wǎng)絡(luò)請(qǐng)求操作
這篇文章主要介紹了python包實(shí)現(xiàn)urllib網(wǎng)絡(luò)請(qǐng)求操作,urllib?是?Python?標(biāo)準(zhǔn)庫(kù)中用于網(wǎng)絡(luò)請(qǐng)求的庫(kù),下面urllib的相關(guān)資料介紹,需要的小伙伴可以參考一下2022-04-04

