Индексная позиция элемента

#python #list #algorithm

#python #Список #алгоритм

Вопрос:

Итак, у меня есть этот код, как найти конкретный индекс нулевого элемента?

 arr =[1,0,2,0]
for i in arr:
    if i <=0:
        print(list(arr).index(i))
    else:
        print("greater")
 

С принтами:

 greater
1
greater
1
 

цель:

 greater
1
greater
3
 

Комментарии:

1. index() всегда будет возвращать только первое вхождение

Ответ №1:

При использовании enumerate() вы получите и индекс, и значение одновременно. Значение сравнения больше 0 или нет.

 arr = [1, 0, 2, 0]
for i, val in enumerate(arr):
    if val > 0:
        print('Greater!')
    else:
        print(i)
 

Вывод

 Greater!
1
Greater!
3
 

Комментарии:

1. Я хотел бы видеть : print('Greater!' if val > 0 else i)

2. @ansev Да, это также работает и более всеобъемлюще

Ответ №2:

в python 3 вы можете получить весь индекс с помощью следующей строки.

 list(map(lambda x: x[0], filter(lambda enum_val: enum_val[1] > 0, enumerate(arr))))