Python字符串元素的訪問與截取

 得到Python的各種序列後,接下里就要知曉如何訪問或取出序列中的數據。看着很簡單,但是隨着所學的序列越來越多後,比如字符串、列表、元組、字典、一維數組、多維數組、Series、DataFrame,漸漸的腦子就會混亂,所以打算梳理一下。先從最簡單的字符串開始。其他序列可參看鄙人其他博文,如果我寫了的話。

 

字符串可以單個訪問,也可以切片訪問。

訪問單個元素

給出下標即可,第一個元素的下標是0,最後一個的下標既可以是(長度-1)也可以是-1。

索引可以分爲正索引和負索引。

假設有個字符串“01234567”,那麼它對應的索引如下圖所示:

temp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print(temp[0])  #A   下標從0開始計數
print(temp[-1])  #Z

字符串的切片操作

格式:<字符串>[<起始位置>:<終止位置>:<步長>]

步長爲1,每次走一步;步長爲2,每次走兩步,中間隔一位。得到從<起始位置>開始,間隔爲<步長>,到<終止位置>前一個字符結束的字符串。也就是說是一個左閉右開區間。

起始位置可以省略,表示起始位置爲0,從第一個開始。<終止位置>可以省略,表示終止位置爲末尾,到最後一個爲止。步長也可以省略,表示步長爲1。

步長可以爲負。

字符串第一個元素的索引是0,字符串最後一個元素的所以是len(str)-1或者是-1。

之後的可以以此類推。

普通切片操作

temp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#從索引爲0的位置開始輸出,直到輸出索引爲9的位置的數據(10不包括)
#步長默認爲1
print(temp[0:10])  #ABCDEFGHIJ

print(temp[0:10:2])
#開始我以爲會輸出ADG……形式的數據,但結果是ACEGI
#原來步長爲2,中間只隔一個……

輸出從第一個到倒數第N個數

同理也可推出第M個數到倒數第N個數。

例如:輸出不包含最後兩個元素的字符串切片。

temp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print(temp[0:-2])
#ABCDEFGHIJKLMNOPQRSTUVWX
#最末尾兩個數沒有輸出,步長是1已經省略
#亦可寫成
print(temp[:-2])  #ABCDEFGHIJKLMNOPQRSTUVWX
#完整形式是print(temp[0:-2:1])

輸出末尾的N個數

例如從倒數第2個數開始輸出

temp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print(temp[-2:])  #YZ
#完整形式是print(temp[-2:27:1])

全部逆序輸出 

temp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print(temp[::-1])
#ZYXWVUTSRQPONMLKJIHGFEDCBA

循環迭代輸出

字符串作爲可迭代對象,自然可以迭代循環輸出。

str = "ABCDEFG"
for s in str:
    print(s, end = " ")
#A B C D E F G
str = "ABCDEFG"
for index, item in enumerate(str):
    print(item, end =" ")
#A B C D E F G

遇到新的用法會更新,另,如有錯誤,還請指出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章