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為正數時
- 如果不指定start,切片的第一個元素默認是列表是第一個元素
- 如果不指定stop,切片的最後一個元素默認是列表的最後一個元素
- 從索引start開始往後計算切片
- 當
step
為負數時
- 如果不指定start,切片的第一個元素默認為列表的最後一個元素
- 如果不指定stop,切片的最後一個元素默認是列表的第一個元素
- 從索引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有三種調用方式
- slice(stop)
- slice(start,stop)
- 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!