概述
Python中字串是作為一種強大的處理工具集的存在,而不是類C中使用的那麼難受。因為Python提供了一系列字串操作的方法,從大小寫轉換、切片操作到查詢等等應有盡有,幾乎滿足日常的使用場景,當然如果滿足不了需求還可以得助於更加強大的第三方庫比如string
,re
等。下面就介紹了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的轉換表,示例中ste 與abc 為對映關係,每個字元相對應(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)
複製程式碼