[英]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.