#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))))