Мы уже умеем узнавать значение элемента по его порядковому номеру в списке. Но часто бывает, что надо решить обратную задачу, узнать номер элемента по его значению.

Для этого у списка есть метод index (от англ. таки просто индекс)

Делается это так

summer = ["июнь", "июль", "август"]  # создали список
x = "июль"  # объявили переменную со значением второго элемента
i = summer.index(x)  # запросили порядковый номер значения x в списке summer
print(f"{x} находится на {i} позиции в списке {summer}")  # вывели фразу 

Это нам выдаст

хм, только вот он же на второй должен быть? А ну да нумерация же идет с нуля. Так что, чтобы фраза выглядела корректно надо добавить +1 к i, типа так:

print(f"{x} находится на {i + 1} позиции в списке {summer}")  # вывели фразу 

теперь другое дело.

Кстати можно проверить что index действительно работает правильно, например, взять найти индекс по значению, а потом получить значения по номеру, вот так например

summer = ["июнь", "июль", "август"]  # создали список
x = "июль"  # объявили переменную со значением второго элемента
i = summer.index(x)  # запросили порядковый номер значения x в списке summer
value = summer[i] # получили значение по найденному порядковому номеру
print(f"{x} равно {value}")  # выдаст "июль равно июль"

Один тонкий момент, когда хотим узнать значение важно чтобы значение присутствовало в списке. Например, если попробуем найти номер не существующего значения

summer = ["июнь", "июль", "август"]
x = "апрель" 
i = summer.index(x)
print(i)

то получим красную ошибку:

поэтому перед тем как узнать номер, проверяйте есть ли элемент в списке:

summer = ["июнь", "июль", "август"]
x = "апрель"
if x in summer:
    i = summer.index(x)
    print(i)
else:
    print("Элемента нет в списке")

кстати есть возможность проверять не присутствие элемента в списке, а его отсутствие, для этого используется конструкция not in

summer = ["июнь", "июль", "август"]
x = "апрель"
if x not in summer:  # тут теперь у меня будет not in
    print("Элемента нет в списке")
else:
    i = summer.index(x)
    print(i)

выдаст этот код тоже самое:

Итого

  • Если хотите узнать номер элемента в списке items, используйте функцию index, нпр: i = items.index(x)
  • Если хотите вывести номер элемента в общепринятой системе отсчета, то есть от единицы, добавляйте к индексу 1, нпр: print(f"{i + 1}"
  • Перед тем как узнать номер элемента в списке, проверьте его существование через if x in summer
  • Либо проверьте его отсутствие чтобы ничего не делать if x not in summer

Задание

Создать списк содержащий названия месяцев/дней/планет/что-нибудь на свой вкус. Запросить название и вывести информацию о позиции элемента в списке в художественной форме. Если элемент отсутсвует, сообщить об этом.