Найти - Пользователи
Полная версия: как сделать index в обратную сторону?
Начало » Python для новичков » как сделать index в обратную сторону?
1
panama555
Привет!
С помощью метода index() я могу узнать порядковый номер по значению элемента списка.
Он находит первый элемент от начала списка
Есть ли возможность указать этому методу искать значение в обратном порядке?
т.е. от конца списка к началу
FishHook
ну сделайте списку reverse ?
panama555
Не хотел лишних движений, надеялся, что какой-нибудь атрибут меняет направление поиска
FishHook
panama555
Не хотел лишних движений
А никаких лишних телодвижений и нет, reversed давно уже генератор, оверхед минимальный. И да - он меняет направление поиска, ровно то, что вы хотели.
panama555
Дело в том, что мне нужно искать номер последнего элемента, но потом приводить его в “нормальный ” вид
А это ещё строка кода

Например:
a=#надо найти индекс последней “4”- он равен 4
a.reverse()
b=a.index(“4”)# но теперь индекс равен 0
# превращаю в нужный вид
c= ( len(a)-1)-b# только теперь он равен 4
не очень лаконично

py.user.next
Для строки есть .rindex()
  
>>> 'abcabc'.rindex('a')
3
>>>

Для списка это слишком специфичное действие, чтобы делать для этого метод и встраивать его в язык.
Rodegast
>Есть ли возможность указать этому методу искать значение в обратном порядке?

 >>> s = [1,2,3,3,4,54,1,2,3]
>>> s.index(3,-1)
8
panama555
py.user.next
Ясно, спасибо
Rodegast
Этот вариант не подойдёт
Вы просто указываете аргумент start -1 и начинаете поиск c последнего элемента
но поиск всё равно слева-направо
Это никак не поможет


FishHook
panama555
 l = [1,2,3,4,5,6,0,2,9,]
found = 0
index = [x for x in enumerate(l) if x[1]==found][-1][0]
panama555
FishHook
Да, хороший способ. Обязательно использую. Спасибо

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB