總結:44個Python3字串內建方法大全及示例

yifanwu發表於2021-09-09

概述

Python中字串是作為一種強大的處理工具集的存在,而不是類C中使用的那麼難受。因為Python提供了一系列字串操作的方法,從大小寫轉換、切片操作到查詢等等應有盡有,幾乎滿足日常的使用場景,當然如果滿足不了需求還可以得助於更加強大的第三方庫比如stringre等。下面就介紹了Python3中44個字串內建方法的基本概述及簡單示例。

44個字串內建方法概述

方法 描述
capitalize 返回S的大寫版本,即建立第一個字元,為大寫字母,其他為小寫字母
casefold 返回全小寫
center 使字串產生居中效果,預設填充為空格,也可指定填充單個字元
count 返回子字串sub的非重疊出現次數, string S [start:end]。 可選引數start和end為切片表示法。即在切片範圍內統計指定字串的出現次數,如果不指定即在整個字串內統計指定字串出現次數
encode 字串編碼轉換,預設為encoding='utf-8'
endswith 測試字串結尾是否為指定字串,也可指定字串結尾
expandtabs 將字串中的tab製表符轉換為空格,一個字表符預設為8個空格
find 在字串中查詢指定字元,找到則返回最小的索引,沒有則返回-1,也可以加上分片指定字串中索引範圍
format 字串格式化的一種方法,將需要格式化的地方填充{}
format_map 字串格式化的一種方法,接收的引數為字典,通過對映的方式格式化
index 尋找字串中出現指定的第一個索引
isalnum 字串中是否全部為數字字元,並至少有一個字元,若是則返回Ttue,否則返回False
isalpha 字串中是否全部為英文字母,並至少有一個字元,若是則返回True,否則返回False
isdecimal 判斷字串是否只有十進位制字元,若是則返回True,否則返回False
isdigit 判斷字串中是否全部為數字,並至少有一個字元,若是則返回True,否則返回False
isidentifier 判斷字串是否為有效定義
islower 判斷字串是否全部為小寫字元,若是則返回True,否則返回False
isnumeric 判斷字串中是否全部為數字,若是則返回True,否則返回False
isprintable 判斷字串中所有字元是否都是可列印字元(in repr())或字串為空。
isspace 判斷字串是否全部為空格,若是則返回True,否則返回False
istitle 判斷字串是否為一個標題字串,即每個單詞首寫字母都為大寫,若是則返回True,否則返回False
isupper 判斷字串中是否全部為大寫字元,若是則返回True,否則返回False
join 將序列中的元素以指定的字元拼接成新的字串
ljust 使字串左對齊,當len(s)<width時,多餘的字元預設為空,也可以指定填充單個字元
lower 將字串全部轉為小寫字元
lstrip 刪除字串最前面的空格,回車,製表符等
maketrans 返回一個用translate的轉換表,示例中steabc為對映關係,每個字元相對應(s->a,t->b,e->c),outtab用於替換intab出現在需要處理的字串中,第三個引數為需要刪除的字元
partition 搜尋指定分隔符,並返回第一個分隔符之前的部分,第一個分隔符本身,和第一個分隔符之後的部分
replace 字串替換,replace(self, old, new, count=None),接受引數依次是需要替換的字串,替換後的字串,和可選引數替換次數,預設為全部替換
rfind 在字串中查詢指定字元,找到則返回最大的索引,沒有則返回-1,也可以加上分片指定字串中索引範圍
rindex 在字串中查詢指定字元,找到則返回最大的索引,沒有則返回-1,也可以加上分片指定字串中索引範圍
rjust 使字串右對齊,當len(s)<width時,多餘的字元預設為空,也可以指定填充單個字元
rpartition 搜尋指定分隔符,並返回最後一個分隔符之前的部分,最後一個分隔符本身,和最後一個分隔符之後的部分
rsplit 從右向左尋找,以某個元素為中心將左右分割成兩個元素並放入列表中,maxsplit引數預設為-1,表示根據指定分割字元全部分割,maxsplit=1即根據指定分割字元僅分割一次,使用效果和rpartition類似
rstrip 刪除字串最後面的空格,回車,製表符等
split 從左向右尋找,以某個元素為中心將左右分割成兩個元素並放入列表中,maxsplit引數預設為-1,表示根據指定分割字元全部分割,maxsplit=1即根據指定分割字元僅分割一次,使用效果和partition類似
splitlines 以換行符('\r', '\r\n', \n')分割為列表,引數keepends預設False,不包含換行符,如果為True,則保留換行符
startswith 判斷字串開頭是否為指定字串,若是則返回True,否則返回False
strip 刪除字串左右兩邊的空格,回車,製表符等
swapcase 將字串中大小寫字元翻轉為小大寫字元
title 將字串轉為標題字串,即每個單詞首字母大寫
translate 根據引數table給出的表(包含 256 個字元)轉換字串的字元, 要過濾掉的字元放到 del 引數中。table表是通過maketrans方法轉換而來
upper 將字串全部轉為小寫字元
zfill 當len(s)<width時,從左邊開始用0填充

44種方法使用示例


# 示例
s = 'str_test'

print('s.capitalize'.center(40, '-'))
# 返回S的大寫版本,即建立第一個字元,為大寫字母,其他為小寫字母
s_capitalize = s.capitalize()
print(s_capitalize)

print('s.casefold'.center(40, '-'))
# 返回全小寫
s_casefold = s.casefold()
print(s_casefold)

print('s.center'.center(40, '-'))
# 使字串產生居中效果,預設填充為空格,也可指定填充單個字元
s_center = s.center(20, '-')
print(s_center)

print('s.count'.center(40, '-'))
# 返回子字串sub的非重疊出現次數, string S [start:end]。 可選引數start和end為切片表示法。即在切片範圍內統計指定字串的出現次數,如果不指定即在整個字串內統計指定字串出現次數
s_count = s.count('es', 0, 7)
print(s_count)

print('s.encode'.center(40, '-'))
# 字串編碼轉換,預設為`encoding='utf-8'`
s_encode = s.encode('utf-8', 'strict')
print(s_encode)

print('s.endswith'.center(40, '-'))
# 測試字串結尾是否為指定字串,也可指定字串結尾
s_endswith = s.endswith('st', 1, 8)
print(s_endswith)

print('s.expandtabs'.center(40, '-'))
# 將字串中的tab製表符轉換為空格,一個字表符預設為8個空格
s_tab = 'ss\tr'
s_tab_expandtabs = s_tab.expandtabs(tabsize=8)
print(s_tab_expandtabs)

print('s.find'.center(40, '-'))
# 在字串中查詢指定字元,找到則返回最小的索引,沒有則返回-1,也可以加上分片指定字串中索引範圍
s_find = s.find('test', 0, 8)
print(s_find)

print('s.format'.center(40, '-'))
# 字串格式化的一種方法,將需要格式化的地方填充`{}`
s_format = '{} string in python'.format('Powerful')
print(s_format)

print('s.format_map'.center(40, '-'))
# 字串格式化的一種方法,接收的引數為字典,通過對映的方式格式化
a = {'x': 'Powerful'}
s_format_map = '{x} string in python'.format_map(a)
print(s_format_map)

print('s.index'.center(40, '-'))
# 尋找字串中出現指定的第一個索引
s_index = s.index('test')
print(s_index)

print('s.isalnum'.center(40, '-'))
# 字串中是否全部為數字字元,並至少有一個字元,若是則返回Ttue,否則返回False
s_num = '233'
s_num_isalnum = s_num.isalnum()
print(s_num_isalnum)

print('s.isalpha'.center(40, '-'))
# 字串中是否全部為英文字母,並至少有一個字元,若是則返回True,否則返回False
s_alpha = 'will'
s_alpha_isalpha = s_alpha.isalpha()
print(s_alpha_isalpha)

print('s.isdecimal'.center(40, '-'))
# 判斷字串是否只有十進位制字元,若是則返回True,否則返回False
s_deci = '333'
s_deci_isdecimal = s_deci.isdecimal()
print(s_deci_isdecimal)

print('s.isdigit'.center(40, '-'))
# 判斷字串中是否全部為數字,並至少有一個字元,若是則返回True,否則返回False
s_digi = '123456'
s_digi_isdigit = s_digi.isdigit()
print(s_digi_isdigit)

print('s.isidentifier'.center(40, '-'))
# 判斷字串是否為有效定義
s_iden = ''
s_iden_isidentifier = s_iden.isidentifier()
print(s_iden_isidentifier)

print('s.islower'.center(40, '-'))
# 判斷字串是否全部為小寫字元,若是則返回True,否則返回False
s_islower = s.islower()
print(s_islower)


print('s.isnumeric'.center(40, '-'))
# 判斷字串中是否全部為數字,若是則返回True,否則返回False
s_nume = '123456'
s_nume_isnumeric = s_nume.isnumeric()
print(s_nume)

print('s.isprintable'.center(40, '-'))
# 判斷字串中所有字元是否都是可列印字元(in repr())或字串為空。
s_prin = ''
s_prin_isprintable = s_prin.isprintable()
print(s_prin_isprintable)

print('s.isspace'.center(40, '-'))
# 判斷字串是否全部為空格,若是則返回True,否則返回False
s_spac = '      '
s_spac_isspace = s_spac.isspace()
print(s_spac_isspace)

print('s.istitle'.center(40, '-'))
# 判斷字串是否為一個標題字串,即每個單詞首寫字母都為大寫,若是則返回True,否則返回False
s_titl = 'String In Python.'
s_titl_istitle = s_titl.istitle()
print(s_titl_istitle)

print('s.isupper'.center(40, '-'))
# 判斷字串中是否全部為大寫字元,若是則返回True,否則返回False
s_uppe = 'STR_TEST'
s_uppe_isupper = s_uppe.isupper()
print(s_uppe_isupper)

print('s.join'.center(40, '-'))
# 將序列中的元素以指定的字元拼接成新的字串
strs = ['Powerful', 'strng', 'in', 'python']
strs_join = ' '.join(strs)  # 指定' '空格拼接列表中的元素
print(strs_join)

print('s.ljust'.center(40, '-'))
# 使字串左對齊,當len(s)<width時,多餘的字元預設為空,也可以指定填充單個字元
s_ljust = s.ljust(10, '*')
print(s_ljust)

print('s.lower'.center(40, '-'))
# 將字串全部轉為小寫字元
s_lowe = 'I Like PYTHON'
s_lowe_lower = s_lowe.lower()
print(s_lowe_lower)

print('s.lstrip'.center(40, '-'))
# 刪除字串最前面的空格,回車,製表符等
s_lstr = ' \n\t\rstr_test'
s_lstr_lstrip = s_lstr.lstrip()
print(s_lstr_lstrip)

print('s.maketrans'.center(40, '-'))
# 返回一個用translate的轉換表,示例中`ste`與`abc`為對映關係,每個字元相對應(s->a,t->b,e->c),`outtab`用於替換`intab`出現在需要處理的字串中,第三個引數為需要刪除的字元
intab = "st"
outtab = "#$"
deltab = '_'
s_maketrans = s.maketrans(intab, outtab, deltab)
print(s_maketrans)

print('s.partition'.center(40, '-'))
# 搜尋指定分隔符,並返回第一個分隔符之前的部分,第一個分隔符本身,和第一個分隔符之後的部分
s_part = 'I like Python'
s_part_partition = s_part.partition(' ')
print(s_part_partition)

print('s.replace'.center(40, '-'))
# 字串替換,`replace(self, old, new, count=None)`,接受引數依次是需要替換的字串,替換後的字串,和可選引數替換次數,預設為全部替換
s_replace = s.replace('t', 'T', 1)
print(s_replace)

print('s.rfind'.center(40, '-'))
# 在字串中查詢指定字元,找到則返回最大的索引,沒有則返回-1,也可以加上分片指定字串中索引範圍
s_rfind = s.rfind('t', 0, 8)
print(s_rfind)

print('s.rindex'.center(40, '-'))
# 在字串中查詢指定字元,找到則返回最大的索引,沒有則返回-1,也可以加上分片指定字串中索引範圍
s_rindex = s.rindex('t', 0, 8)
print(s_rindex)

print('s.rjust'.center(40, '-'))
# 使字串右對齊,當len(s)<width時,多餘的字元預設為空,也可以指定填充單個字元
s_rjust = s.rjust(10, '*')
print(s_rjust)

print('s.rpartition'.center(40, '-'))
# 搜尋指定分隔符,並返回最後一個分隔符之前的部分,最後一個分隔符本身,和最後一個分隔符之後的部分
s_part = 'I like Python'
s_part_rpartition = s_part.rpartition(' ')
print(s_part_rpartition)

print('s.rsplit'.center(40, '-'))
# 從右向左尋找,以某個元素為中心將左右分割成兩個元素並放入列表中,maxsplit引數預設為-1,表示根據指定分割字元全部分割,`maxsplit=1`即根據指定分割字元僅分割一次,使用效果和rpartition類似
s_rspl = 'I like python'
s_rspl_rsplit = s_rspl.rsplit(' ', 1)
print(s_rspl_rsplit)


print('s.rstrip'.center(40, '-'))
# 刪除字串最後面的空格,回車,製表符等
s_rstr = ' str_test\n\t\r'
s_rstr_rstrip = s_rstr.rstrip()
print(s_rstr_rstrip)

print('s.split'.center(40, '-'))
# 從左向右尋找,以某個元素為中心將左右分割成兩個元素並放入列表中,maxsplit引數預設為-1,表示根據指定分割字元全部分割,`maxsplit=1`即根據指定分割字元僅分割一次,使用效果和partition類似
s_spli = 'I like python'
s_spli_split = s_spli.split(' ', 1)
print(s_spli_split)

print('s.splitlines'.center(40, '-'))
# 以換行符('\r', '\r\n', \n')為分割列表,引數`keepends`預設False,不包含換行符,如果為True,則保留換行符
s_line = '''It's a nice day.
with beautiful mood.
and you
'''
s_line_splitlines = s_line.splitlines(True)
print(s_line_splitlines)

print('s.startswith'.center(40, '-'))
# 判斷字串開頭是否為指定字串,若是則返回True,否則返回False
s_startswith = s.startswith('str')
print(s_startswith)

print('s.strip'.center(40, '-'))
# 刪除字串左右兩邊的空格,回車,製表符等
s_stri = '\n\t\rstr_test\n\t\r'
s_stri_strip = s_stri.strip()
print(s_stri_strip)

print('s.swapcase'.center(40, '-'))
# 將字串中大小寫字元翻轉為小大寫字元
s_swap = 'STR_test'
s_swap_swapcase = s_swap.swapcase()
print(s_swap_swapcase)

print('s.title'.center(40, '-'))
# 將字串轉為標題字串,即每個單詞首字母大寫
s_titl = 'poerful string in python'
s_titl_title = s_titl.title()
print(s_titl_title)

print('s.translate'.center(40, '-'))
# 根據引數table給出的表(包含 256 個字元)轉換字串的字元, 要過濾掉的字元放到 del 引數中。table表是通過maketrans方法轉換而來
s_translate = s.translate(s_maketrans)
print(s_translate)

print('s.upper'.center(40, '-'))
# 將字串全部轉為小寫字元
s_uppe = 'STR_Test'
s_uppe_upper = s_uppe.upper()
print(s_uppe_upper)

print('s.z_fill'.center(40, '-'))
# 當len(s)<width時,從左邊開始用0填充
s_zfill = s.zfill(10)
print(s_zfill)
複製程式碼

carbon.png

示例效果如下:

carbon (1).png

相關文章