Python:Python序列的切片操作

Python序列的切片操作

序列(consequence)是 python 中一種數據結構,這種數據結構根據索引來獲取序列中的對象。
一般說來,具有序列結構的數據類型都可以使用:index, len, max, min, in, +, *, 切片。如:

a="abcdefg"
print(len(a))#7
print(max(a))#g
print(min(a))#a
print(a+a)#abcdefgabcdefg
print(a*3)#abcdefgabcdefgabcdefg
print(a[2:5])#cde
print(a.index("c"))#2
print(a[4])#e

切片

對於具有序列結構的數據來說,切片操作的方法是:consequence[start_index: end_index: step]

  • start_index: 表示的是第一個元素對象,如果不寫的話,默認就是0,即爲起始位置。正索引位置默認爲0;負索引位置默認爲 -len(consequence)
  • end_index: 表示的是最後一個元素對象,默認就是取到末尾。正索引位置默認爲 len(consequence)-1;負索引位置默認爲 -1。
  • step: 表示步長,默認爲1,步長不能爲0。

對於序列結構數據來說,索引和步長都具有正負兩個值,分別表示左右兩個方向取值。索引的正方向從左往右取值,起始位置爲0;負方向從右往左取值,起始位置爲-1。

簡單的說,切片就是從你第一個想要的對象開始,到你第一個不想要的對象結束。(也就是說它是一個左閉右開的區間,一步走幾個對象由你設置的步長決定)

常用場景

#con[start_index]
print(a[3])  #d(取下標爲3的元素)

#con[start_index:]
print(a[3:])  #defg(從下標爲3取到結尾,步長默認1)

#con[: end_index]
print(a[:3])  #abc(默認起始位置爲0,也就是從開始取到下標爲3,不包括下標爲3的元素)

#con[:]
print(a[:])  #abcdefg(全缺省就是取開始到結尾的整個片段)

#con[start_index: end_index]
print(a[2:5])  #cde(從下標爲2,取到下標爲5,但是不包括下標爲5)

#con[start_index: end_index : step]
print(a[1::2])  #bdf(從下標爲1開始,取到結尾,步長爲2)

#con[::step]
print(a[::2])  #aceg(正序取,步長爲2)

需要注意一哈~千萬不能越界嘍
!!!以下三行代碼是錯誤示範!是錯誤示範!:

list1=[1,2,3,4,5,6]
print(len(list1))  #6,list1的長度是6
print(list1[len(list1)])  #這裏會報錯,越界訪問(IndexError: list index out of range)

用切片逆置序列

用切片逆置序列非常的簡單方便,一行python就可以搞定啦!

#用切片逆置序列
a="abcdefg"
b=[1,2,3,4,5,6]
c=(11,22,33,44,55,66)

print(a[::-1])
print(b[::-1])
print(c[::-1])
#如果是list的話,用reverse也可以逆置
b.reverse()
print(b)

這兩種方法用切片會好一些,因爲切片不會修改序列結構。

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