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

遇到新的用法会更新,另,如有错误,还请指出。

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