Python列表的索引與切片
什么是索引?
- 哪些數(shù)據(jù)類型里有索引的概念? —> 字符串、列表、元組
- 從最左邊記錄的位置開(kāi)始就是索引
- 索引用數(shù)字表示,起始位是從 0 開(kāi)始
- 字符串、列表、元組的最大索引是他們的長(zhǎng)度 - 1
示例如下:
names = ['Neo', 'Jack', 'Adem'] print(names[0])?? ??? ??? ?# >>> Neo print(names[-1])?? ??? ?# >>> Adem print(names[5])?? ??? ??? ?# IndexError: list index out of range?? ?沒(méi)有索引為5的元素,所以報(bào)錯(cuò)
什么是切片?
- 索引用來(lái)對(duì)單個(gè)成員(元素)進(jìn)行訪問(wèn),切片則是對(duì)一定范圍內(nèi)的成員(元素)進(jìn)行訪問(wèn)
- 切片通過(guò)冒號(hào)的方式在中括號(hào)內(nèi)把相隔的兩個(gè)索引位置范圍內(nèi)的成員(元素)找出來(lái),如 [0:10]
- 切片的規(guī)則:左含,右不含; 左邊包含,右邊不包含
- 通過(guò)切片方式獲取的完整的列表已經(jīng)不再是原來(lái)的列表了,即使獲取的是原來(lái)列表的完整的內(nèi)容
示例如下:
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(num_list[3:7])
執(zhí)行結(jié)果如下:
>>> [4, 5, 6, 7]
獲取列表的完整內(nèi)容如下:
names = ['Neo', 'Jack', 'Adem']
print('names 列表完整的內(nèi)容是:', names[:])
print('names 列表完整的內(nèi)容是:', names[0:])執(zhí)行結(jié)果如下:
>>> names 列表完整的內(nèi)容是: ['Neo', 'Jack', 'Adem']
>>> names 列表完整的內(nèi)容是: ['Neo', 'Jack', 'Adem']
通過(guò)切片方式獲取的完整的列表已經(jīng)不再是原來(lái)的列表了,即使獲取的是原來(lái)列表的完整的內(nèi)容,
示例如下:
names = ['Neo', 'Jack', 'Adem', 'Lily']
print('\'names\' 列表的內(nèi)存地址為:', id(names))
print('索引獲取的完整\'names\' 列表的內(nèi)存地址為:', id(names[0:]))
# 執(zhí)行結(jié)果如下:
# >>> 'names' 列表的內(nèi)存地址為: 140522949689152
# >>> 索引獲取的完整'names' 列表的內(nèi)存地址為: 140522949686656?反序獲取列表成員(元素),示例如下:
num_list = [1, 2, 3, 4, 5, 6, 7, 8] print(num_list[::-1]) ? ? ? # 列表的反序 print(num_list[-3:-1]) ? ? ?# 列表的反向獲取 print(num_list[0:8:2]) ? ? ?# 列表的步長(zhǎng)獲取:【每隔2步長(zhǎng)(也可以理解為每?jī)蓚€(gè)數(shù)值)獲取索引0到8的元素】 # 執(zhí)行結(jié)果如下: # >>> [8, 7, 6, 5, 4, 3, 2, 1] # >>> [6, 7] # >>> [1, 3, 5, 7]
切片生成空列表,示例如下:
num_list = [1, 2, 3, 4, 5, 6, 7, 8] print(num_list[0:0])? # 執(zhí)行結(jié)果如下: # >>> []
列表的索引,獲取與修改
- list.index(item) 列表通過(guò) index() 函數(shù),傳入一個(gè)元素來(lái)獲取當(dāng)前元素的索引值
- list[index] = new_item ; list[index]為變量對(duì)應(yīng)的索引的值; new_item 為一個(gè)新的元素
- 數(shù)據(jù)修改的范圍只能是已存在的索引范圍內(nèi)
- 列表無(wú)法通過(guò)添加新的索引的方式賦值
示例如下:
test_str = ['a', 'b', 'c', 'd']
print(test_str.index('c'))
# 執(zhí)行結(jié)果如下:
# >>> 2?? ??? ??? ?'c' 的索引位置是 2
test_str = ['a', 'b', 'c', 'd']
print(test_str.index('e'))
# 執(zhí)行結(jié)果如下:
# >>> ValueError: 'e' is not in listtest_str = ['a', 'b', 'c', 'd'] test_str[0]='z' print(test_str) # 執(zhí)行結(jié)果如下: # >>> ['z', 'b', 'c', 'd'] test_str = ['a', 'b', 'c', 'd'] test_str[:]='h', 'j', 'k', 'l' print(test_str) # 執(zhí)行結(jié)果如下: # >>> ['h', 'j', 'k', 'l'] test_str = ['a', 'b', 'c', 'd'] test_str[:]=['o', 'p', 'q', 'r'] print(test_str) # 執(zhí)行結(jié)果如下: # >>> ['o', 'p', 'q', 'r']
test_str = ['a', 'b', 'c', 'd'] test_str[5]='z' print(test_str) # 執(zhí)行結(jié)果如下: # >>> IndexError: list assignment index out of range
通過(guò) pop() 函數(shù)刪除索引
pop() 函數(shù)的功能:通過(guò)索引刪除并獲取列表的元素
pop() 函數(shù)的用法: list.pop(index) , index 為刪除列表的第幾個(gè)元素
- 函數(shù)會(huì)刪除該索引的元素并返回
- 如果傳入的 index 索引不存在,則會(huì)報(bào)錯(cuò)
示例如下:
names = ['Neo', 'Jack', 'Adem', 'Lily']
pop_item = names.pop(1)
print('刪除的元素為:', pop_item, ', 被刪除后的\'names\'列表為:', names)
# 執(zhí)行結(jié)果如下:
# >>> 刪除的元素為: Jack , 被刪除后的'names'列表為: ['Neo', 'Adem', 'Lily']
names = ['Neo', 'Jack', 'Adem', 'Lily']
pop_item = names.pop(5)
print(names)
# 執(zhí)行結(jié)果如下:
# >>> IndexError: pop index out of range通過(guò) del 刪除索引
del 函數(shù)的功能:通過(guò)索引刪除并獲取列表的元素
del 函數(shù)的用法: del list(index) , index 為刪除列表的第幾個(gè)元素
- 直接刪除,無(wú)返回值
- 如果傳入的 index 索引不存在,則會(huì)報(bào)錯(cuò)
示例如下:
names = ['Neo', 'Jack', 'Adem', 'Lily'] del names[0] print(names) # 執(zhí)行結(jié)果如下: # >>> ['Jack', 'Adem', 'Lily'] names = ['Neo', 'Jack', 'Adem', 'Lily'] del names[0] print(names) # 執(zhí)行結(jié)果如下: # >>> IndexError: list assignment index out of range
索引在元組中的特殊性
- 可以和列表 一樣獲取索引與切片索引
- 元組函數(shù) index 和列表的用法完全一致
- 無(wú)法通過(guò)索引修改、刪除元素(因?yàn)樵M是不可修改的)
到此這篇關(guān)于Python列表的索引與切片的文章就介紹到這了,更多相關(guān)Python 索引與切片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
教你使用Sublime text3搭建Python開(kāi)發(fā)環(huán)境及常用插件安裝另分享Sublime text3最新激活注冊(cè)碼
這篇文章主要介紹了使用Sublime text 3搭建Python開(kāi)發(fā)環(huán)境及常用插件安裝,并提供了最新Sublime text 3激活注冊(cè)碼需要的朋友可以參考下2020-11-11
python的print輸出在控制臺(tái)并且將輸出內(nèi)容保存為文件(最新推薦)
這篇文章主要介紹了python的print輸出在控制臺(tái)并且將輸出內(nèi)容保存為文件,我感覺(jué)就是類似于重寫一下調(diào)用print的時(shí)候執(zhí)行的方法,讓他既能夠在控制臺(tái)輸出,也能保存到文件里去,需要的朋友可以參考下2023-01-01
安裝pyhttpx解決ImportError: DLL load failed錯(cuò)誤
這篇文章主要為大家介紹了安裝pyhttpx解決ImportError: DLL load failed錯(cuò)誤,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
解決tensorflow測(cè)試模型時(shí)NotFoundError錯(cuò)誤的問(wèn)題
今天小編就為大家分享一篇解決tensorflow測(cè)試模型時(shí)NotFoundError錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Jupyter notebook 不自動(dòng)彈出網(wǎng)頁(yè)的解決方案
這篇文章主要介紹了Jupyter notebook 不自動(dòng)彈出網(wǎng)頁(yè)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
Python面向?qū)ο笾瓷?自省機(jī)制實(shí)例分析
這篇文章主要介紹了Python面向?qū)ο笾瓷?自省機(jī)制,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中的反射/自省機(jī)制概念、原理及相關(guān)屬性操作技巧,需要的朋友可以參考下2018-08-08
python實(shí)現(xiàn)簡(jiǎn)單的udp發(fā)送和接收
這篇文章主要介紹了python實(shí)現(xiàn)簡(jiǎn)單的udp發(fā)送和接收方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Requests庫(kù)實(shí)現(xiàn)數(shù)據(jù)抓取與處理功能
本文介紹了Python中常用的第三方庫(kù)Requests的基本用法和高級(jí)功能,我們學(xué)習(xí)了如何發(fā)起HTTP請(qǐng)求、處理響應(yīng)、使用會(huì)話對(duì)象、設(shè)置代理和證書驗(yàn)證等技巧,需要的朋友可以參考下2023-05-05
基于Python實(shí)現(xiàn)千圖成像工具的示例代碼
千圖成像也就是用N張圖片組成一張圖片的效果。這篇文章將利用Python語(yǔ)言編寫一個(gè)簡(jiǎn)單的千圖成像工具,感興趣的小伙伴可以了解一下2022-07-07

