python 列表的查詢操作和切片

1.列表

  • 列表是python內置的數據結構(列表、元組、字典、集合),相當於數組
  • 列表中所有數據都是按順序有序排列,列表屬於序列類型
  • 列表中的所有數據都有正數和負數的索引,通過指定的索引總能映射到唯一確定的數據
  • 列表中可以存在重復的數據(區分set)
  • 列表中可以保存任何類型的數據,多種類型的數據可以混合存儲在一個列表中
  • 列表可以根據需要動態地伸縮,系統會根據需要動態地分配和回收內存,使用前無須預先聲明列表的容量

2.列表的創建[]或list()

  • 用中括號[]創建列表,變量名不要取名為list或l,list是列表對應的類名,l容易被誤認為數字1
  • 調用內置函數list()(類list的構造方法)
L = [] # 創建空列表
L = [1,2,3,4,5,'python']
print(L) # [1, 2, 3, 4, 5, 'python']
list(rang(1, 5)) # 傳入range對象 [1,2,3,4]
list([1,2,3,4,5,'python']) # 直接傳入中括號[]
list() # 創建空列表

在這裡插入圖片描述

3.定位列表中的元素L[0]

在這裡插入圖片描述

使用索引獲得列表的元素,如果指定的索引在列表中不存在,拋出錯誤IndexError: list index out of range

在這裡插入圖片描述

4.查詢列表中元素索引L.index()

  • 第一個元素索引是0,後續元素依次+1
  • 最後一個元素索引是-1,前面元素依次-1

在這裡插入圖片描述

L = ['H','e','l','l','o'] # 定義列表,元素可以為數值,但怕給索引搞混瞭用瞭字符
L.index('e')
L.index('l')
L.index('h') # value error
L.index('l',2) # 從索引2開始找'l'
L.index('l',2,5) # 在[2, 4]內找'l'
  • 獲得列表中指定元素的索引調用方法index,隻返回大於0的數值,比如L.index(‘e’) = 1,如列表中存在多個指定元素,方法index隻返回第一個指定元素的索引值,比如L.index(‘l’) = 2,如果列表中不存在指定元素,拋出錯誤ValueError: ‘h’ is not in list
  • 調用方法index時還可以指定起始索引start和結束索引stop兩個參數,在一定范圍內查找元素 (不包含索引stop處值)

在這裡插入圖片描述

5.列表的切片操作L[start:stop:step]

  • 切片的語法格式 [start:stop:step]
  • 得到的切片依然是列表,是原始列表的片段的一份拷貝
  • 得到的切片不包括索引stop對應的元素
  • 步長step默認值為1,這時可以簡化為[start:stop]
  • 當step為正數時
  1. 如果不指定start,切片的第一個元素默認是列表是第一個元素
  2. 如果不指定stop,切片的最後一個元素默認是列表的最後一個元素
  3. 從索引start開始往後計算切片
  • step為負數時
  1. 如果不指定start,切片的第一個元素默認為列表的最後一個元素
  2. 如果不指定stop,切片的最後一個元素默認是列表的第一個元素
  3. 從索引start開始往前計算切片

在這裡插入圖片描述

L = list('HelloWorld')
L[1:7:2]
L[1:6]
L[:] # 返回整個列表 輸入L[]報錯SyntaxError: invalid syntax
L[::-1] # 翻轉整個列表
L[:-1] # stop指定為-1所在元素 ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l']
L[6:0:-2]
L[0:6:-2] # start指定為0所在元素,往前看沒有值,返回[]
L[8::-2] # ['l', 'o', 'o', 'l', 'H']
L[8:0:-2] # ['l', 'o', 'o', 'l'] 不包含stop指定的元素
L[-2:0:-2]
L[:3:-2]
  • 切片操作允許索引越界(對比index不允許)
L = list('HelloWorld')
L[:100]
L[-100:]

在這裡插入圖片描述

6.L[slice(start,stop,step)]

  • 可以調用內置函數slice(類slice的構造方法)創建slice類型的對象
  • 內置函數slice有三種調用方式
  1. slice(stop)
  2. slice(start,stop)
  3. slice(start,stop,step)
  • start、stop和step的默認值都是None
  • slice(start,stop,step)與切片操作中的start:stop:step等價
L = list('HelloWorld')
L[slice(1,9,2)]
L[1:9:2]
L[::]
L[slice(None,None,None)] # L[slice(None)] 返回整個列表
L[1:7]
L[slice(1,7)]
L[:7]
L[slice(7)] #可以隻輸入stop,也可寫作 L[slice(None, 7)]

在這裡插入圖片描述

7.in/not in 查詢是否包含某個元素,存在返回True

L = list('HelloWorld')
print(5 in L) # False

在這裡插入圖片描述

到此這篇關於python 列表的查詢操作和切片的文章就介紹到這瞭,更多相關python 列表的查詢操作和切片內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: