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)文章
SpringBoot中的@MessageMapping注解詳解
這篇文章主要介紹了SpringBoot中的@MessageMapping注解詳解,Spring Boot 提供了對(duì) WebSocket 的支持,其中 @MessageMapping 注解是一個(gè)常用的注解,它可以將一個(gè) Java 方法標(biāo)記為 WebSocket 的消息處理器,需要的朋友可以參考下2023-08-08Python numpy實(shí)現(xiàn)數(shù)組合并實(shí)例(vstack,hstack)
這篇文章主要介紹了Python numpy實(shí)現(xiàn)數(shù)組合并(官網(wǎng)實(shí)例),涉及vstack,hstack的簡(jiǎn)單用法,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Python 安裝 virturalenv 虛擬環(huán)境的教程詳解
這篇文章主要介紹了Python 安裝 virturalenv 虛擬環(huán)境的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02selenium鼠標(biāo)操作實(shí)戰(zhàn)案例詳解
在實(shí)際場(chǎng)景中,會(huì)有單擊、長(zhǎng)時(shí)間單擊、雙擊、右鍵、拖拽等鼠標(biāo)操作,selenium提供了名為ActionChains的類來(lái)處理這些操作,下面這篇文章主要給大家介紹了關(guān)于selenium鼠標(biāo)操作實(shí)戰(zhàn)案例的相關(guān)資料,需要的朋友可以參考下2023-05-05Python基礎(chǔ)之?dāng)?shù)據(jù)類型詳解
python的數(shù)值類型包括整數(shù),浮點(diǎn)數(shù),復(fù)數(shù),集合,小數(shù)和分?jǐn)?shù),布爾值.它們都是python中的數(shù)值類型.如果是有過(guò)其他語(yǔ)言編寫經(jīng)驗(yàn)的人,一定很好奇,浮點(diǎn)數(shù)和小數(shù)的區(qū)別是什么?文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06