如何在循环中找到Python数组中元素的索引
抱歉,我对编程还比较陌生,找不到和我需要的内容相关的信息...
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