麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

全面掌握Python字符串切片方法

2023-04-26 12:04:39
字體:
來源:轉載
供稿:網友

在《Python字符串的索引與訪問字符串中的字符》文章中介紹了使用字符串位置索引可以訪問字符串中的單個字符的方法,但有時,我們需要訪問字符串中的若干個連續的字符,即使用字符串中的一個子串。Python針對這種情況也提供了比較方便的處理方式。

簡單說,Python字符串切片就是按照指定索引截取字符串中的片段構成一個新的字符串。

一、語法結構

str_object[start_pos : end_pos : step]

切片從 start_pos 開始(包含起始位置索引處的字符),結束于 end_pos(不包含結束位置索引處的字符);

step 表示步長,即每step個字符截取1次字符;

Python字符串切片語法中的三個參數都是可選的,start_pos 默認為0,end_pos 默認為字符串長度(字符個數),step 默認為1;

在Python中,對于任何索引 i ,都遵循 s[:i] + s[i:] = s 的規則。

截取字符串中的任何字符索引 i 在源字符串中的索引應滿足:

start_pos <= i < end_pos

即截取時,包含開始位置的字符,而不包含結束位置處的字符。

當指定步長 step 時,截取的字符的索引 i 應該是:

i = start_pos + n * step , n 取 0,1,2......

同時,i < end_pos ,即指定步長時,截取的字符也不包含結束位置 end_pos 處的字符。

二、Python字符串切片示例

1、使用 start_pos 參數

>>> str1 = "Python is easy."
>>> str2 = str1[3 : ]  # 從索引位置3,即字符h開始到最后
>>> print(str2)
hon is easy.
>>> s = "武林網VEVB"
>>> print(s[3 : ])  # 從索引位置3,即字符 I 開始到最后
VEVB

在Python中的運行情況截圖:

Python字符串切片:指定開頭索引

2、只使用 end_pos 參數

>>> str1 = "Python is easy."
>>> str2 = str1[:6] # 截取前 6 個字符,即索引位置0-5
>>> print(str2)
Python
>>> s = "武林網VEVB"
>>> print(s[:3]) # 截取前3個字符,即索引0-2處的字符
武林網

end_pos截取停止位置,不包含在截取范圍內。

在Python中的運行情況:

Python字符串切片:指定結束位置

3、只指定 step 參數

>>> str1 = "http://www.companysz.com"
>>> str2 = str1[ : : 2]
>>> print(str2)
ht:/w.ieucm
>>> s = "武林網VEVB"
>>> s[ : : 3]
'翔I園'
>>>

在指定步長 step 參數時,處于開始索引位置處的字符是一定包含在內的,然后是按照 step 指定的步長,每次從當前索引處加 step 步長進行截取。如下圖陰影處示意。

                                           
str1 h t t p : / / w w w . b i y e 5 u . c o m
字符索引 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
step   1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
str2 h   t   :   /   w   .   i   e   u   c   m

在Python中的運行效果如下圖:

4、同時指定 start_pos 和 end_pos 參數

>>> s1 = "武林網VEVB提供詳細的Python教程"
>>> s1[7 : 11]
'提供詳細'
>>> s2 = "Python/tR/tSPSS/r/nJava"
>>> s2[4 : 16]
'on/tR/tSPSS/r/nJ'
>>>

要注意的是:end_pos 參數是停止位置索引,不包含在截取范圍內,如 s1[7 : 11] 是截取的索引為 7 到 10 處的字符。

還要注意到,轉義字符也算作一個字符,如 s2 中的 /t ,/r 和 /n ,它們分別被作為一個字符來處理。

在Python中的運行情況如下圖所示:

Python字符串切片:指定開始索引和結束索引

5、同時指定3個參數的情況

>>> str1 = "http://www.companysz.com"
>>> str2 = str1[ 7 : 17 : 3]
>>> print(str2)
w.yu
>>> "武林網VEVB"[: 6 : 2]
'宇I樂'
>>>

從這個例子中可以看出,我們也可以直接使用字符串本值來進行切片截取。

6、使用負數索引

在進行字符串切片時,也可以使用負數索引,從后往前進行索引操作。

str1 = "www.companysz.com"
str2 = str1[-3 : ] 
print(str2)
str3 = str1[ :-4]
print(str3)
str4 = str1[-10: -4]
print(str4)
str5 = str1[-13 : -1 : 2]
print(str5)
str6 = str1[-1 : -13 : -2]
print(str6)

start_posend_pos 為負數時,是相對于字符串序列末端進行的,從末端進行時,最后一個字符的索引為 -1,然后往前依次為 -2 ,-3 ...。

當 step 為負數時,開始位置是從字符串后端開始,結束位置在字符串前端,所以 這時如需要切到想要的子字符串,需要保證: start_pos > end_pos 。

本例的示意圖如下所示:圖中綠色方塊代表截取開始位置,灰色方塊代表截取停止位置。

字符串參數為負時截取示意圖
                             
str1 w w w . b i y e 5 u . c o m
字符索引 7 8 9 10 11 12 13 14 15 16 17 18 19 20
負數索引 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
str2=str1[-3:]                       c o m
str3=str1[:-4] w w w . b i y e 5 u        
str4=str1[-10:-4]         b i y e 5 u        
str5=str1[-13:-1:2]     1 2 1 2 1 2 1 2 1 2 1  
  w   .   i   e   u   c    

step為正,從左往右生成新字符串: 'w.ieuc'
str6=[-1:-13:-2]     -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1  
      .   i   e   u   c   m

step為負:從右往左生成新字符串:'mcuei.'

輸出結果:

com
www.VeVb
VeVb
w.ieuc
mcuei.

我們可以使用字符串切片功能把字符串進行翻轉:

s1 = "武林網VEVB"
s2 = s1[ : : -1]
print(s2)

輸出結果:

園樂TI亭宇翔

7、省略所有參數

當使用下面兩種形式時,相當于各參數取默認值

s = "Hello,Python!"
s1 = s[ : : ] # 從頭截到尾
s2 = s[ : : : ] # 從頭截到尾,默認步長1
print('s1=', s1)
print('s2=', s2)

輸出結果:

Hello,Python!
Hello,Python!

本文(完)

Python字符串切片問題

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩精品不卡一区二区三区 | 成人免费观看49www在线观看 | 日日摸夜夜添夜夜添牛牛 | 一级做a爱性色毛片免费1 | 国产高清成人久久 | 亚洲一二区精品 | 日韩欧美高清一区 | 91福利影视| 成人 精品| 久久久久久久久久美女 | 日本精品久久久一区二区三区 | 一级片999 | 91久久久久久 | 成人在线观看免费视频 | 久久久久久久久久久久久久国产 | 久久情爱网 | jizzjizz中国人少妇中文 | 五月婷婷第四色 | 中文字幕在线不卡视频 | 黄色7777| 蜜桃视频在线免费播放 | 亚洲一区二区三区视频免费 | 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 欧美性黄 | 羞羞的视频 | 亚洲精品日韩色噜噜久久五月 | 久久精品国产久精国产 | 国产亚洲精品久久午夜玫瑰园 | 国产午夜精品理论片a级探花 | 污黄视频在线播放 | 国产黄色毛片 | 三人弄娇妻高潮3p视频 | 久久91精品 | 久久国产精品久久久久久久久久 | 毛片大全免费 | 久久久久久久久久91 | 亚洲午夜久久久久 | 国产韩国精品一区二区三区久久 | av在线网站观看 | 久久99精品国产99久久6男男 | 免费国产在线视频 |