如何在循环中找到Python数组中元素的索引

3 投票
5 回答
1052 浏览
提问于 2025-04-16 17:11

抱歉,我对编程还比较陌生,找不到和我需要的内容相关的信息...

while i<size(Array):
      for index, k in enumerate(Array1):
             if (k==Array[i]):
                   print index
                   i=i+1

上面的代码运行后出现了“索引超出范围”的错误... 注意,Array1的元素比Array少。

我在想,怎么才能在不出错的情况下运行这个循环,我也不太确定是什么导致了这个错误。

谢谢!

5 个回答

1

如果你只想要第一个索引(或者说只会有一个索引),那么你可以使用索引函数:

for i in array2:
    if i in array1:
        print array1.index(i)

如果你想要获取所有的索引,可以使用下面的方法:

print [array2.index(i) for i in array1 if i in array2]
1

你可以通过使用 in 这个操作符来检查一个值是否在列表中:

Array = [1,2,3,4,5,6,7,8]
Array1 = [2,9,3,9,1,9,2]

for i, value in enumerate(Array1):
    if value in Array:
        print i

输出结果

0
2
4
6
1

这里的“i”是一个索引,你更新它的频率太高了。把“i = i + 1”这行代码的缩进调整一下,这样就可以避免索引超出范围的问题。

while i<size(Array):
      for index, k in enumerate(Array1):
             if (k==Array[i]):
                   print index
      i=i+1

撰写回答