關(guān)于Python?中IndexError:list?assignment?index?out?of?range?錯(cuò)誤解決
在 Python 中,當(dāng)您嘗試訪問甚至不存在的列表的索引時(shí),會(huì)引發(fā) IndexError: list assignment index out of range。 索引是可迭代對(duì)象(如字符串、列表或數(shù)組)中值的位置。
在本文中,我們將學(xué)習(xí)如何修復(fù) Python 中的 Index Error list assignment index out-of-range 錯(cuò)誤。
Python IndexError:列表分配索引超出范圍
讓我們看一個(gè)錯(cuò)誤的例子來理解和解決它。
代碼示例:
# error program --> IndexError: list assignment index out of range i = [7,9,8,3,7,0] # index range (0-5) j = [1,2,3] # index range (0-3) print(i,"\n",j) print(f"\nLength of i = {len(i)}\nLength of j = {len(j)}" ) print(f"\nValue at index {1} of list i and j are {i[1]} and {j[1]}") print(f"\nValue at index {3} of list i and j are {i[3]} and {j[3]}") # error because index 3 isn't available in list j
輸出:
上面代碼中 IndexError: list assignment index out of range 背后的原因是我們?cè)噲D訪問索引 3 處的值,這在列表 j 中不可用。
修復(fù) Python 中的 IndexError: list assignment index out of range
要修復(fù)此錯(cuò)誤,我們需要調(diào)整此案例列表中可迭代對(duì)象的索引。 假設(shè)我們有兩個(gè)列表,你想用列表 b 替換列表 a。
代碼示例:
a = [1,2,3,4,5,6] b = [] k = 0 for l in a: b[k] = l # indexError --> because the length of b is 0 k += 1 print(f"{a}\n{a}")
輸出:
IndexError: list assignment index out of range
您不能為列表 b 賦值,因?yàn)樗拈L(zhǎng)度為 0,并且您試圖在第 k 個(gè)索引 b[k] = I 處添加值,因此它會(huì)引發(fā)索引錯(cuò)誤。 您可以使用 append()
和 insert()
修復(fù)它。
修復(fù) IndexError: list assignment index out of range 使用 append() 函數(shù)
append() 函數(shù)在列表末尾添加項(xiàng)目(值、字符串、對(duì)象等)。 這很有幫助,因?yàn)槟槐靥幚硭饕龁栴}。
代碼示例:
a = [1,2,3,4,5,6] b = [] k = 0 for l in a: # use append to add values at the end of the list j.append(l) k += 1 print(f"List a: {a}\nList b: {a}")
輸出:
List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]
修復(fù) IndexError: list assignment index out of range 使用 insert() 函數(shù)
insert()
函數(shù)可以直接將值插入到列表中的第 k 個(gè)位置。 它有兩個(gè)參數(shù),insert(index, value)。
代碼示例:
a = [1, 2, 3, 5, 8, 13] b = [] k = 0 for l in a: # use insert to replace list a into b j.insert(k, l) k += 1 print(f"List a: {a}\nList b: {a}")
輸出:
List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]
除了上述兩種解決方案之外,如果你想像對(duì)待其他語言中的普通數(shù)組一樣對(duì)待 Python 列表,你可以使用 None 值預(yù)定義你的列表大小。
代碼示例:
a = [1,2,3,4,5,6] b = [None] * len(i) print(f'Length of a: {len(a)}') print(f'Length of b: {len(b)}') print(f"\n{a}\n")
輸出:
Length of a: 6
Length of b: 6[1, 2, 3, 4, 5, 6]
[None, None, None, None, None, None]
一旦你用虛擬值 None 定義了你的列表,你就可以相應(yīng)地使用它。
總結(jié)
可能有更多的手動(dòng)技術(shù)和邏輯來處理 IndexError:Python 中的列表分配索引超出范圍。 本文概述了兩個(gè)常見的列表函數(shù),它們可以幫助我們?cè)谔鎿Q兩個(gè)列表時(shí)幫助我們處理 Python 中的索引錯(cuò)誤。
我們還討論了預(yù)定義列表并將其視為類似于其他編程語言數(shù)組的數(shù)組的替代解決方案。
到此這篇關(guān)于Python 中IndexError:list assignment index out of range 錯(cuò)誤解決的文章就介紹到這了,更多相關(guān)Python IndexError錯(cuò)誤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Python操作MongoDB數(shù)據(jù)庫的詳細(xì)指南
MongoDB是由C++語言編寫的非關(guān)系型數(shù)據(jù)庫,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫系統(tǒng),其內(nèi)容存儲(chǔ)形式類似JSON對(duì)象,下面這篇文章主要給大家介紹了關(guān)于利用Python操作MongoDB數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下2023-02-02python使用xlsx和pandas處理Excel表格的操作步驟
python的神器pandas庫就可以非常方便地處理excel,csv,矩陣,表格 等數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于python使用xlsx和pandas處理Excel表格的操作步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01Python Pandas常用函數(shù)方法總結(jié)
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識(shí),文章圍繞著Pandas常用函數(shù)方法展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06tensorflow求導(dǎo)和梯度計(jì)算實(shí)例
今天小編就為大家分享一篇tensorflow求導(dǎo)和梯度計(jì)算實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01python數(shù)據(jù)擬合之scipy.optimize.curve_fit解讀
這篇文章主要介紹了python數(shù)據(jù)擬合之scipy.optimize.curve_fit解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12