如果元素匹配,则返回python中元素的索引

时间:2017-12-15 20:52:05

标签: python

我有一个数组,如果目标匹配,我需要返回一个元素的索引,而不使用index()。

例如我们有一个= [12,31,45,67,100,101]。 如果目标是101,我们将返回5,否则返回-1。

我做的是:

def target_meet(a,t):
   for i in range(len(a)):
      if a[i]==t:
          return i
   else:
          return -1

它给了我错误的输出。 请帮助。

感谢。

3 个答案:

答案 0 :(得分:1)

您可以简单地使用枚举:

  

一线解决方案:

a=[12,31,45,67,100,101]

target=101

print([i if j==target else -1 for i,j in enumerate(a)])

输出:

[-1, -1, -1, -1, -1, 5]
  

详细解决方案:

以上列表理解与:

相同
final_result=[]
for i,j in enumerate(a):
    if j==target:
        final_result.append(i)
    else:
        final_result.append(-1)

print(final_result)

答案 1 :(得分:0)

def target_meet(a,t):
  for i in range(len(a)):
    if a[i]==t:
      return i
# return -1 after loop finished
  return -1

答案 2 :(得分:-1)

def target_meet(a,t):
   for i,x in enumerate(a):
      if x==t:
          return i
   return -1