python掌握字符串只需這一篇就夠了
四大前綴
除了普通的字符串,python在字符串前面可以有4個前綴,即frub。其中,f字符串可將{}中的變量轉(zhuǎn)為字符串;r表示取消轉(zhuǎn)義;u表示使用Unicode字符;b表示采用byte類型。
前二者最常用,示例如下
>>> f"1+1={1+1}" #f字符串
'1+1=2'
>>> r"C:\abc\def"#r字符串取消轉(zhuǎn)義
'C:\\abc\\def'
大小寫轉(zhuǎn)化
| 大小寫轉(zhuǎn)化 | 說明 | 示例 | 結(jié)果 |
|---|---|---|---|
| capitalize() | 首字母轉(zhuǎn)大寫 | 'i love u'.capitalize() |
‘I love u' |
| upper() | 所有字母轉(zhuǎn)大寫 | 'I love u'.upper() |
‘I LOVE U' |
| lower() | 所有字母轉(zhuǎn)小寫 | 'I LOVE U'.lower() |
‘i love u' |
| title() | 單詞首字母大寫 | 'i love u'.title() |
‘I Love U' |
| swapcase() | 大小寫翻轉(zhuǎn) | 'I Love U'.swapcase() |
‘i lOVE u' |
| casefold() | 超級大寫轉(zhuǎn)小寫 | 'Γ'.casefold() |
‘γ' |
空格調(diào)整函數(shù)
其中輸入w表示將字符長度調(diào)整為w,如未作說明,則其余位置補充為空格。
| 空格調(diào)整 | 說明 | 示例 | 結(jié)果 |
|---|---|---|---|
| center(w) | 調(diào)整后原字符串居中 | 'Love'.center(6) |
' Love ' |
| ljust(w) | 調(diào)整后原字符串居左 | 'Love'.ljust(6) |
'Love ' |
| rjust(w) | 調(diào)整后原字符串居右 | 'Love'.rjust(6) |
' Love' |
| zfill(w) | 在左側(cè)補0 | '123'.zfill(6) |
‘000123' |
| expandtabs(w) | 將tab轉(zhuǎn)為w個空格 |
'\ta'.expandtabs(4) |
' a' |
刪除部分字符
s為字符串,如果為空則默認為空格。
| lstrip(s) | 自左刪除s中的字符 |
'ILoveU'.lstrip('ILU') |
‘oveU' |
| rstrip(s) | 自右刪除s中的字符 |
'\tLove\t'.rstrip() |
‘\tLove' |
| strip(s) | 執(zhí)行l(wèi)strip(s)和rstrip(s) | '\tLove\t'.strip() |
‘Love' |
| removeprefix(s) | 自左刪除s |
'ILoveU'.removeprefix('ILU') |
‘ILoveU' |
| removesuffix(s) | 自右刪除s |
'ILoveU'.removesuffix('eU') |
‘ILov' |
字符串判定
| 返回True的條件 | 示例 | 返回值 | |
|---|---|---|---|
| isalnum() | 只包含字母或數(shù)字 | 'abc1'.isalnum() |
True |
| isalpha() | 只含字母 | 'abc1'.isalpha() |
False |
| isdecimal() | 只包含十進制數(shù)字 | '123A'.isdecimal() |
False |
| isdigit() | 只含數(shù)字 | '123A'.isdecimal() |
False |
| islower() | 包含字母,且均為小寫 | 'abc1'.islower() |
True |
| isupper() | 包含字母,且均為大寫 | '123'.isupper() |
False |
| isnumeric() | 只包含數(shù)字字符 | '四五'.isnumeric() |
True |
| isspace() | 只含空格 | 'asd'.isspace() |
False |
| istitle() | 首字母均大寫 | 'I Love U'.istitle() |
True |
| isascii() | 均為ASCII碼 | '四'.isascii() |
False |
| isidentifier() | 可用作python標識符 | '1asd'.isidentifier() |
False |
| isprintable() | 均為可打印字符 | chr(1).isprintable() |
False |
字符串查找
下面的函數(shù)均有三個輸入?yún)?shù),str表示待匹配字符串,beg和end分別表示開頭和結(jié)尾,默認為0和被匹配字符串的長度。以s.count(str, beg, end)為例,表示s[beg:end]中str出現(xiàn)的次數(shù)。
s.count(str, beg, end) |
str出現(xiàn)的次數(shù) |
s.find(str, beg, end) |
str首次出現(xiàn)的位置,如未找到則返回-1 |
s.rfind(str, beg, end) |
str最后出現(xiàn)的位置,如未找到則返回-1 |
s.index(str, beg, end) |
和find相同,但未找到會報錯 |
s.rindex(str, beg, end) |
和rfind相同,但未找到會報錯 |
s.startswith(str, beg, end) |
若以str開頭,則返回True |
s.endswith(str, beg, end) |
若以str結(jié)尾,則返回True |
分割、合并和替換
s.split(str, num) |
將s按照str進行分割,若指定num,則分割為num+1段 |
s.rsplit(str, num) |
和split相同,但從右向左開始匹配 |
s.splitlines([keepends]) |
按行分割,若指定keepends為False,則不保留換行符 |
s.join(seq) |
以s為分隔符,將seq中的字符串組合在一起 |
s.partition(str) |
將s分成三份,str左邊,str和str右邊 |
s.rpartition(str) |
和partition相同,但從右邊開始 |
s.replace(s1, s2, num) |
將s中的s1換成s2,若指定num,則替換不超過num次 |
除了replace,還可以通過translate來進行替換,區(qū)別在于translate輸入的是maketrans建立的替換表。
>>> trans = ''.maketrans('I',"我")
>>> "I Love U".translate(trans)
'我 Love U'
format格式化
format可將標識符{}替換為元組中的值,如果{}中未指定序號,則順序替代。
'{} Love {}'.format('I','U')
'I Love U'
如果{}中指定了序號,則按照序號的順序替代
>>> '{0} Love {1}, {1} Love {0}'.format('I','U')
'I Love U, U Love I' #最近被蜜雪冰城洗腦了。。。
當然,和C語言一樣,這種格式化用于數(shù)字轉(zhuǎn)化的情況多一些,python中通過:來聲明數(shù)字轉(zhuǎn)化為字符串之后的格式
其中,
^, <, >分別表示居中、左對齊、右對齊+表示在正數(shù)前顯示+,負數(shù)前顯示 -b、d、o、x分別是二進制、十進制、八進制、十六進制
具體示例如下
>>> from math import pi
| 輸入 | 輸出 | 描述 |
|---|---|---|
'{:.2f}'.format(pi) |
‘3.14' | 保留兩位小數(shù),四舍五入 |
'{:.2%}'.format(pi) |
‘314.16%' | 保留兩位小數(shù)的百分數(shù) |
'{:+.2f}'.format(1) |
‘+1.00' | 保留兩位小數(shù),帶符號 |
'{:0>5d}'.format(1) |
‘00001' | 左側(cè)補0,寬度為5 |
'{:>5d}'.format(1) |
‘01' | 左側(cè)補空格,寬度為5 |
'{:x<5d}'.format(1) |
‘1xxxx' | 右側(cè)補x,寬度為5 |
'{:-^5d}'.format(1) |
‘–1--' | 兩側(cè)補-,寬度為5 |
'{:,}'.format(1e5) |
‘100,000.0' | 逗號分隔 |
'{:.2e}'.format(1e5) |
‘1.00e+05' | 科學計數(shù)法 |
'{:b}'.format(8) |
‘1000' | 二進制 |
format_map
format的輸入為一個字符串元組,將元組中的字符串根據(jù)索引替代字符串中的{},而format_map則直接用字典來進行格式化。
例如用元組可以做到
>>> '{} Love {}'.format("阿珍","阿強")
'阿珍 Love 阿強'
而用字典,則可以這樣寫
>>> '{A} Love {B}'.format_map({"A":"阿珍","B":"阿強"})
'阿珍 Love 阿強'
從而使得代碼更加清晰。
到此這篇關于python掌握字符串只需這一篇就夠了的文章就介紹到這了,更多相關python 字符串 內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
關注官方微信