python?列表的查詢操作和切片
更新時間:2022年01月26日 11:54:38 作者:只是有點小慫
這篇文章主要介紹了python?列表的查詢操作和切片,列表是python內(nèi)置的數(shù)據(jù)結(jié)構(gòu),相當(dāng)于數(shù)組,列表中所有數(shù)據(jù)都是按順序有序排列,列表屬于序列類型,接下來一起學(xué)習(xí)下面的文章內(nèi)容吧
1.列表
- 列表是
python
內(nèi)置的數(shù)據(jù)結(jié)構(gòu)(列表、元組、字典、集合),相當(dāng)于數(shù)組 - 列表中所有數(shù)據(jù)都是按順序有序排列,列表屬于序列類型
- 列表中的所有數(shù)據(jù)都有正數(shù)和負數(shù)的索引,通過指定的索引總能映射到唯一確定的數(shù)據(jù)
- 列表中可以存在重復(fù)的數(shù)據(jù)(區(qū)分set)
- 列表中可以保存任何類型的數(shù)據(jù),多種類型的數(shù)據(jù)可以混合存儲在一個列表中
- 列表可以根據(jù)需要動態(tài)地伸縮,系統(tǒng)會根據(jù)需要動態(tài)地分配和回收內(nèi)存,使用前無須預(yù)先聲明列表的容量
2.列表的創(chuàng)建[]或list()
- 用中括號[]創(chuàng)建列表,變量名不要取名為list或l,list是列表對應(yīng)的類名,l容易被誤認為數(shù)字1
- 調(diào)用內(nèi)置函數(shù)
list()(
類list的構(gòu)造方法)
L = [] # 創(chuàng)建空列表 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() # 創(chuàng)建空列表
3.定位列表中的元素L[0]
使用索引獲得列表的元素,如果指定的索引在列表中不存在,拋出錯誤IndexError: list index out of range
4.查詢列表中元素索引L.index()
- 第一個元素索引是0,后續(xù)元素依次+1
- 最后一個元素索引是-1,前面元素依次-1
L = ['H','e','l','l','o'] # 定義列表,元素可以為數(shù)值,但怕給索引搞混了用了字符 L.index('e') L.index('l') L.index('h') # value error L.index('l',2) # 從索引2開始找'l' L.index('l',2,5) # 在[2, 4]內(nèi)找'l'
- 獲得列表中指定元素的索引調(diào)用方法
index
,只返回大于0的數(shù)值,比如L.index(‘e’) = 1,如列表中存在多個指定元素,方法index
只返回第一個指定元素的索引值,比如L.index(‘l’) = 2,如果列表中不存在指定元素,拋出錯誤ValueError: ‘h’ is not in list
- 調(diào)用方法index時還可以指定起始索引start和結(jié)束索引stop兩個參數(shù),在一定范圍內(nèi)查找元素 (不包含索引stop處值)
5.列表的切片操作L[start:stop:step]
- 切片的語法格式 [start:stop:step]
- 得到的切片依然是列表,是原始列表的片段的一份拷貝
- 得到的切片不包括索引stop對應(yīng)的元素
- 步長step默認值為1,這時可以簡化為[start:stop]
- 當(dāng)step為正數(shù)時
- 如果不指定start,切片的第一個元素默認是列表是第一個元素
- 如果不指定stop,切片的最后一個元素默認是列表的最后一個元素
- 從索引start開始往后計算切片
- 當(dāng)
step
為負數(shù)時
- 如果不指定start,切片的第一個元素默認為列表的最后一個元素
- 如果不指定stop,切片的最后一個元素默認是列表的第一個元素
- 從索引start開始往前計算切片
L = list('HelloWorld') L[1:7:2] L[1:6] L[:] # 返回整個列表 輸入L[]報錯SyntaxError: invalid syntax L[::-1] # 翻轉(zhuǎn)整個列表 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)]
- 可以調(diào)用內(nèi)置函數(shù)slice(類slice的構(gòu)造方法)創(chuàng)建slice類型的對象
- 內(nèi)置函數(shù)slice有三種調(diào)用方式
- 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
到此這篇關(guān)于python 列表的查詢操作和切片的文章就介紹到這了,更多相關(guān)python 列表的查詢操作和切片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)確認字符串是否包含指定字符串的實例
下面小編就為大家分享一篇Python實現(xiàn)確認字符串是否包含指定字符串的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05python?使用?with?open()?as?讀寫文件的操作方法
這篇文章主要介紹了python?使用?with?open()as?讀寫文件的操作代碼,寫文件和讀文件是一樣的,唯一區(qū)別是調(diào)用open()函數(shù)時,傳入標識符'w'或者'wb'表示寫文本文件或?qū)懚M制文件,需要的朋友可以參考下2022-11-11Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)
這篇文章主要介紹了Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí),文中有非常詳細的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04