How do you find the index of an element in an array in Python during a loop

Sorry, but I'm pretty new to programming and can't find anything related to what I need ...

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

The above code shows the output that has an index outside the bounds ... Note that Array1 has fewer elements than Array.

I am wondering how one could start a loop without an error, and I'm not quite sure what causes the error.

Thank!

+3
source share
5 answers

i is an index, and you update it often. Indent i = i + 1 to get rid of the index beyond the borders.

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

( ), :

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

, , :

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

, :

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

:

[4, 0, 6, 2]

, , :

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

:

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

, , , i < size(Array) while , , , .

, , , : .

Array1, , .

I think you want to iterate over both lists at the same time. Do not do this by creating two loops, you only need one loop.

for index, k in enumerate(Array):
     if k == Array1[index]:
          print index

A better approach, but perhaps more understandable for beginners:

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

Zip zips two lists together, making it very easy to iterate in parallel.

0
source

All Articles