在循环中,如何在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
将这两个列表压缩到一起,这样就可以很容易地并行迭代这两个列表。您的目标是什么(即,您试图用这段代码解决哪个问题)?谢谢!正是我需要的