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

在循环中,如何在Python上找到数组中元素的索引,python,for-loop,indexing,while-loop,Python,For Loop,Indexing,While Loop,抱歉,我对编程相当陌生,似乎找不到任何与我需要的相关的东西 while i<size(Array): for index, k in enumerate(Array1): if (k==Array[i]): print index i=i+1 而ii是一个索引,您太频繁地更新它。移动i=i+1的缩进,将索引移出边界 while i<size(Array):

抱歉,我对编程相当陌生,似乎找不到任何与我需要的相关的东西

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

而ii是一个索引,您太频繁地更新它。移动i=i+1的缩进,将索引移出边界

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

而i似乎要打印值与输出数组中的值匹配的内部数组中的所有索引:

array1 = [1,2,3,4,5,6,7,8]
array2 = [2,9,3,9,1,9,2]
for i,a1 in enumerate(array1):
    for j,a2 in enumerate(array2):
        if a1 == a2:
            print j
输出:

4
0
6
2
[4, 0, 6, 2]
[0, 2, 4, 6]
如果要收集索引,请列出:

print [j for i,a1 in enumerate(array1) for j,a2 in enumerate(array2) if a1 == a2]
输出:

4
0
6
2
[4, 0, 6, 2]
[0, 2, 4, 6]
或者按顺序排列:

print sorted(j for i,a1 in enumerate(array1) for j,a2 in enumerate(array2) if a1 == a2)
输出:

4
0
6
2
[4, 0, 6, 2]
[0, 2, 4, 6]

如果您只需要第一个索引(或者只有一个索引),则可以使用index函数:

for i in array2:
    if i in array1:
        print array1.index(i)
要获取索引列表,请执行以下操作:

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

您可以使用
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
一种更好的方法,但对于初学者来说可能更难理解:

for index, (value1, value2) in enumerate(zip(Array, Array1)):
   if value1 == value2:
        print index

将这两个列表压缩到一起,这样就可以很容易地并行迭代这两个列表。

您的目标是什么(即,您试图用这段代码解决哪个问题)?谢谢!正是我需要的