您好,登錄后才能下訂單哦!
今天小編給大家分享一下Python列表的索引與切片怎么實現(xiàn)的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
哪些數(shù)據(jù)類型里有索引的概念? —> 字符串、列表、元組
從最左邊記錄的位置開始就是索引
索引用數(shù)字表示,起始位是從 0 開始
字符串、列表、元組的最大索引是他們的長度 - 1
示例如下:
names = ['Neo', 'Jack', 'Adem'] print(names[0]) # >>> Neo print(names[-1]) # >>> Adem print(names[5]) # IndexError: list index out of range 沒有索引為5的元素,所以報錯
索引用來對單個成員(元素)進行訪問,切片則是對一定范圍內(nèi)的成員(元素)進行訪問
切片通過冒號的方式在中括號內(nèi)把相隔的兩個索引位置范圍內(nèi)的成員(元素)找出來,如 [0:10]
切片的規(guī)則:左含,右不含; 左邊包含,右邊不包含
通過切片方式獲取的完整的列表已經(jīng)不再是原來的列表了,即使獲取的是原來列表的完整的內(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']
通過切片方式獲取的完整的列表已經(jīng)不再是原來的列表了,即使獲取的是原來列表的完整的內(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]) # 列表的步長獲?。骸久扛?步長(也可以理解為每兩個數(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) 列表通過 index() 函數(shù),傳入一個元素來獲取當前元素的索引值
list[index] = new_item ; list[index]為變量對應(yīng)的索引的值; new_item 為一個新的元素
數(shù)據(jù)修改的范圍只能是已存在的索引范圍內(nèi)
列表無法通過添加新的索引的方式賦值
示例如下:
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 list
test_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
pop() 函數(shù)的功能:通過索引刪除并獲取列表的元素
pop() 函數(shù)的用法: list.pop(index) , index 為刪除列表的第幾個元素
函數(shù)會刪除該索引的元素并返回
如果傳入的 index 索引不存在,則會報錯
示例如下:
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
del 函數(shù)的功能:通過索引刪除并獲取列表的元素
del 函數(shù)的用法: del list(index) , index 為刪除列表的第幾個元素
直接刪除,無返回值
如果傳入的 index 索引不存在,則會報錯
示例如下:
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 和列表的用法完全一致
無法通過索引修改、刪除元素(因為元組是不可修改的)
以上就是“Python列表的索引與切片怎么實現(xiàn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。