[英]Error: list index out of range
下面的函數應該給你一個列表中與它的索引相對應的所有數字,即索引 0 = 0,並將這個數字附加到一個列表中。
def Utility(l):
Total = []
for i in l:
if i == l[i]:
Total.append(i)
else:
pass
return Total
我確實收到錯誤:列表索引超出范圍。
for i in l
遍歷列表l
。 因此,在每次迭代中,您將列表中的一個元素分配給i
。
如果你想for
索引,你需要使用enumerate
。
for idx, ele in enumerate(l):
# your code
enumerate 將在每次迭代時返回索引和項目。 你的代碼可以這樣寫
def Utility(l):
Total = []
for idx, ele in enumerate(l):
if idx == ele:
Total.append(idx)
else 子句沒用,可以去掉
您正在迭代l
的元素,而不是迭代索引:
for i in [5,6,7]:
print(i)
> 5
> 6
> 7
您應該使用enumerate
:
for i, num in enumerate([5, 6, 7]):
print(i, num)
> 0 5
> 1 6
> 2 7
你的代碼應該是:
def Utility(l):
Total = []
for i in range(len(l)): #point of interest
if i == l[i]:
Total.append(i)
else:
pass
return Total
#驅動程序值
IN : l = [0,1,4,6]
OUT : [0,1]
您的代碼中的錯誤是,當您for i in l
執行操作時, i
值是l
的元素,並且由於這些值可能大於l
的元素數,因此它將通過Error
。 喜歡:
l=[5]
for i in l:
print(i)
#5
print(l[i]) #l[5]
#IndexError: list index out of range
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.