python?列表的查詢操作和切片
1.列表
- 列表是
python內(nèi)置的數(shù)據(jù)結(jié)構(gòu)(列表、元組、字典、集合),相當(dāng)于數(shù)組 - 列表中所有數(shù)據(jù)都是按順序有序排列,列表屬于序列類型
- 列表中的所有數(shù)據(jù)都有正數(shù)和負(fù)數(shù)的索引,通過指定的索引總能映射到唯一確定的數(shù)據(jù)
- 列表中可以存在重復(fù)的數(shù)據(jù)(區(qū)分set)
- 列表中可以保存任何類型的數(shù)據(jù),多種類型的數(shù)據(jù)可以混合存儲(chǔ)在一個(gè)列表中
- 列表可以根據(jù)需要?jiǎng)討B(tài)地伸縮,系統(tǒng)會(huì)根據(jù)需要?jiǎng)討B(tài)地分配和回收內(nèi)存,使用前無須預(yù)先聲明列表的容量
2.列表的創(chuàng)建[]或list()
- 用中括號(hào)[]創(chuàng)建列表,變量名不要取名為list或l,list是列表對(duì)應(yīng)的類名,l容易被誤認(rèn)為數(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對(duì)象 [1,2,3,4] list([1,2,3,4,5,'python']) # 直接傳入中括號(hào)[] list() # 創(chuàng)建空列表

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

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

4.查詢列表中元素索引L.index()
- 第一個(gè)元素索引是0,后續(xù)元素依次+1
- 最后一個(gè)元素索引是-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,如列表中存在多個(gè)指定元素,方法index只返回第一個(gè)指定元素的索引值,比如L.index(‘l’) = 2,如果列表中不存在指定元素,拋出錯(cuò)誤ValueError: ‘h’ is not in list - 調(diào)用方法index時(shí)還可以指定起始索引start和結(jié)束索引stop兩個(gè)參數(shù),在一定范圍內(nèi)查找元素 (不包含索引stop處值)

5.列表的切片操作L[start:stop:step]
- 切片的語法格式 [start:stop:step]
- 得到的切片依然是列表,是原始列表的片段的一份拷貝
- 得到的切片不包括索引stop對(duì)應(yīng)的元素
- 步長(zhǎng)step默認(rèn)值為1,這時(shí)可以簡(jiǎn)化為[start:stop]
- 當(dāng)step為正數(shù)時(shí)
- 如果不指定start,切片的第一個(gè)元素默認(rèn)是列表是第一個(gè)元素
- 如果不指定stop,切片的最后一個(gè)元素默認(rèn)是列表的最后一個(gè)元素
- 從索引start開始往后計(jì)算切片
- 當(dāng)
step為負(fù)數(shù)時(shí)
- 如果不指定start,切片的第一個(gè)元素默認(rèn)為列表的最后一個(gè)元素
- 如果不指定stop,切片的最后一個(gè)元素默認(rèn)是列表的第一個(gè)元素
- 從索引start開始往前計(jì)算切片

L = list('HelloWorld')
L[1:7:2]
L[1:6]
L[:] # 返回整個(gè)列表 輸入L[]報(bào)錯(cuò)SyntaxError: invalid syntax
L[::-1] # 翻轉(zhuǎn)整個(gè)列表
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]- 切片操作允許索引越界(對(duì)比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類型的對(duì)象
- 內(nèi)置函數(shù)slice有三種調(diào)用方式
- slice(stop)
- slice(start,stop)
- slice(start,stop,step)
- start、stop和step的默認(rèn)值都是None
- slice(start,stop,step)與切片操作中的start:stop:step等價(jià)
L = list('HelloWorld')
L[slice(1,9,2)]
L[1:9:2]
L[::]
L[slice(None,None,None)] # L[slice(None)] 返回整個(gè)列表
L[1:7]
L[slice(1,7)]
L[:7]
L[slice(7)] #可以只輸入stop,也可寫作 L[slice(None, 7)]
7.in/not in 查詢是否包含某個(gè)元素,存在返回True
L = list('HelloWorld')
print(5 in L) # False
到此這篇關(guān)于python 列表的查詢操作和切片的文章就介紹到這了,更多相關(guān)python 列表的查詢操作和切片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python接口自動(dòng)化之正則用例參數(shù)化的示例詳解
這篇文章主要介紹了python接口自動(dòng)化之正則用例參數(shù)化,它是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
詳解Python實(shí)現(xiàn)圖像分割增強(qiáng)的兩種方法
圖像分割就是把圖像分成若干個(gè)特定的、具有獨(dú)特性質(zhì)的區(qū)域并提出感興趣目標(biāo)的技術(shù)和過程。本文將為大家分享兩個(gè)用Python實(shí)現(xiàn)像分割增強(qiáng)的方法,需要的可以參考一下2022-03-03
Python實(shí)現(xiàn)確認(rèn)字符串是否包含指定字符串的實(shí)例
下面小編就為大家分享一篇Python實(shí)現(xiàn)確認(rèn)字符串是否包含指定字符串的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
python?使用?with?open()?as?讀寫文件的操作方法
這篇文章主要介紹了python?使用?with?open()as?讀寫文件的操作代碼,寫文件和讀文件是一樣的,唯一區(qū)別是調(diào)用open()函數(shù)時(shí),傳入標(biāo)識(shí)符'w'或者'wb'表示寫文本文件或?qū)懚M(jìn)制文件,需要的朋友可以參考下2022-11-11
Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)
這篇文章主要介紹了Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
Pytho常見的數(shù)據(jù)可視化庫(kù),小白必備
Python作為數(shù)據(jù)分析的重要語言為數(shù)據(jù)分析的每個(gè)環(huán)節(jié)都提供了很多庫(kù).常見的數(shù)據(jù)可視化庫(kù)包括matplotib,seaborm,ggplot,bokeh,pygal,pyecharts等,下面小編一一介紹下,需要的朋友可以參考下2021-05-05

