得到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
遇到新的用法会更新,另,如有错误,还请指出。