首頁  >  文章  >  後端開發  >  python字串切片常用方法有哪些

python字串切片常用方法有哪些

WBOY
WBOY轉載
2023-04-18 18:40:038037瀏覽

一、切片

切片:指對操作的物件截取其中一部分的操作,字串、列表、元組都支援切片操作

#語法:序列[起始位置下標:結束位置下標:步長] ,不包含結束位置下標數據,步長為選取間隔,正負均可,預設為1

舉例如下:

str = 'abcdefg_a'
print(str[1:6:2], str[2:6], str[:3], str[3:], str[:])
print(str[::2], str[:-2], str[-6:-2], str[::-2], str[::-1])
print(str[-2:], str[2:-2], str[-2::-2], str[:-2:2], str[2:-2:2])
 
输出:
bdf cdef abc defg_a abcdefg_a
acega abcdefg defg ageca a_gfedcba
_a cdefg _fdb aceg ceg

二、常用方法

2.1 尋找

找出字串:即尋找子字串在字符字串中的位置或出現的次數

  • find():偵測某個字串是否包含在某個字串中,若存在則傳回該子字串開始位置下標,否則返回-1

  • #語法:字串序列.find(子字串,開始位置下標,結束位置下標)

  • index():偵測某個子字串是否包含在某個字串中,若存在則傳回該子字串開始位置下標,否則報異常

    • 語法:字串序列.index(子字串,開始位置下標,結束位置下標)

  • rfind():和find()功能相同,但找出方向為右側開始,即返回子字串最後出現位置

  • rindex():和index()功能相同,但尋找方向為右側開始,即返回子字串最後出現位置

  • #count():傳回某個子字串在字串中出現的次數

#方程式下:

str = 'abcdefg_a'
print('-------------------查找-------------------')
print(str.find('c'), str.find('fg', 2, ), str.find('a', 2), str.find('h'))
print(str.index('c'), str.index('fg', 2, ), str.index('a', 2))
print(str.find('a'), str.rfind('a'), str.index('a'), str.rindex('a'), str.count('a'))
print(str.index('h'))
 
输出:
-------------------查找-------------------
2 5 8 -1
2 5 8
0 8 0 8 2
ValueError: substring not found

2.2 修改

修改字串:透過函數形式修改字串中的資料

  • replace():替換

    • 語法:字串序列.replace(舊子字串,新子字串,最大替換次數)

  • split ():依指定字符分割字串

    • 語法:字串序列.split(分割字符,分割次數)  # 傳回資料個數為分割次數1

  • join():用一個字元或子字串合併字串,即將多個字串合併為一個新的字串

    • 語法:字元或子字串.join(多字串組成的序列)

  • #capitalize():將字串第一個字元轉為大寫,轉換後僅首字大寫,其餘均小寫

    • 語法:字串序列.capitalize() 

  • ##title( ):將字串每個單字首字母轉為大寫

  • lower():將字串中大寫轉小寫

  • upper( ):將字串中小寫轉大寫

  • swapcase():翻轉字串中大小寫

  • partition('分隔符號') :根據指定分隔符號將字串分割,傳回三元元組,組成為左子字串、分隔符號、右子字串

  • min(str):傳回字串str中最小字母

  • max(str):傳回字串str中最大字母

  • #zfill(width):輸出指定長度為width的字符字串,右對齊,不足前面補0,超出指定長度則原樣輸出

  • lstrip():刪除字串左側空格字元

  • #rstrip():刪除字串右側空格字元

  • strip():刪除字串兩側空格字元

  • ljust() :字串左對齊,並以指定字元(預設空格)填入對應長度

    • 語法:字串序列.ljust(長度,填入字元)

  • rjust():字串右對齊,並用指定字元(預設空格)填入對應長度

    • ##語法:字串序列.rjust(長度,填充字元)
    center():居中對齊,並用指定字元(預設空格)填入對應長度
    • 語法:字串序列.center(長度,填入字元)
#範例如下:

print('--------------修改--------------')
str1 = 'hello python and hello IT and hello world and hello YX !'
print(str1.replace('and','&&'))
print(str1.split('and'), str1.split('and', 2))
l = ['Hello', 'world', '!']
t = ('Hello', 'python', '!')
print('_'.join(l), ' '.join(t))  # 用下划线_和空格连接
print(str1.capitalize())  # 首字符转为大写,其余均小写
print(str1.title())  # 每个单词首字母转为大写
str2 = '   Hello World !   '
print(str2.lower(), str2.upper(), str2.swapcase())  # 大写转小写,小写转大写,翻转大小写
print(str2.partition('rl'), str2.partition('o'))  # 根据指定分隔符将字符串分割,返回三元元组
print(min(str2), max(str2), ord(min(str2)), ord(max(str2)))  # str2中最小为空格对应十进制32,最大为r对应114
print(str2.zfill(21))  # 输出指定长度为21的字符串,右对齐,不足前面补0,超出指定长度则原样输出
print(str2.lstrip(), str2.rstrip(), str2.strip())  # 清除字符串左、右、两边空格字符
str3 = 'hello!'
print(str3.ljust(13, '*'), str3.rjust(13, '*'), str3.center(14, '*'))
 
输出:
--------------修改--------------
hello python && hello IT && hello world && hello YX !
['hello python ', ' hello IT ', ' hello world ', ' hello YX !'] ['hello python ', ' hello IT ', ' hello world and hello YX !']
Hello_world_! Hello python !
Hello python and hello it and hello world and hello yx !
Hello Python And Hello It And Hello World And Hello Yx !
   hello world !       HELLO WORLD !       hELLO wORLD !   
('   Hello Wo', 'rl', 'd !   ') ('   Hell', 'o', ' World !   ')
  r 32 114
00   Hello World !  
Hello World !       Hello World ! Hello World !
hello!******* *******hello! ****hello!****
2.3 判斷

    startswith():檢查字串是否以指定子字串開頭,若是傳回True,否則傳回False,設定開始和就結束位置下標,則在指定範圍內檢查
    • 語法:字串序列.startswith(子字串,開始位置下標,結束位置下標)
    endswith():檢查字串是否以指定子字串結尾,是傳回True,否則傳回False,設定開始和就結束位置下標,則在指定範圍內檢查
    • 語法:字串序列.endswith(子字串,開始位置下標,結束位置下標)
    isalpha():若字串至少有一個字元並所有字元都是字母則傳回True,否則回傳False
  • isdigit():若字串只包含數字則傳回True否則回傳False
  • isalnum():若字符串至少有一个字符且所有字符都是字母或数字则返回True,否则返回False

  • isspace():若字符串只包含空格,则返回True,否则返回False

举例如下:

print('---------------判断----------------')
str3 = 'hello!'
print(str3.startswith('he'), str3.startswith('she'), str3.startswith('he',2,))
print(str3.endswith('!'), str3.endswith('。'), str3.endswith('!', 2, 5))
print(str3.isalpha(),str3.isalnum(), str3.isdigit(), str3.isspace())
 
输出:
---------------判断----------------
True False False
True False False
False False False False

以上是python字串切片常用方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除