Как найти значение в списке python
Перейти к содержимому

Как найти значение в списке python

  • автор:

Что делает функция индекс в Python?

Метод index() в Python помогает найти значение индекса элемента в последовательности. Он выдает наименьший возможный индекс указанного элемента. Если указанный элемент не существует, то возвращается ValueError.

sequence.index(x[, start[, end]]) 
  • sequence — это объект, элементы которого представляют собой некую индексированную последовательность (строка, список, кортеж). Каждый элемент последовательности имеет индекс — целое число, обозначающее его позицию в последовательности. Нумерация индексов начинается с 0 (нуля).
  • x — искомый элемент последовательности, чей наименьший индекс будет возвращен.
  • Необязательные аргументы start и end используются для ограничения поиска конкретной подпоследовательностью списка, путем задания среза. Возвращаемый индекс вычисляется относительно изначальной последовательности, а не среза, заданного start и end.
str_seq = 'aebcdef' #Последовательность в виде строки print(str_seq.index('e')) # => 1 print(str_seq.index('e', 2)) # => 5 print(str_seq.index('k')) # => ValueError: substring not found lst_seq = ['a', 'e', 'b', 'c', 'd', 'e', 'f'] #Последовательность в виде списка print(lst_seq.index('b')) # => 2 print(lst_seq.index('k')) # => ValueError: 'k' is not in list tup_seq = ('a', 'e', 'b', 'c', 'd', 'e', 'f') #Последовательность в виде кортежа print(tup_seq.index('a')) # => 0 

Проверьте, существует ли значение в списке Python

В этом посте будет обсуждаться, как проверить, существует ли значение в списке Python.

1. Использование In оператор

Стандартный способ найти значение в списке Python — использовать in оператор. Это показано ниже:

if __name__ == ‘__main__’ :
ints = [ 1 , 2 , 3 , 4 , 5 ]
isPresent = item in ints
print ( isPresent ) # True

Обратите внимание, что in оператор внутренне звонит __contains__() функция:

if __name__ == ‘__main__’ :
ints = [ 1 , 2 , 3 , 4 , 5 ]
isPresent = ints . __contains__ ( item )
print ( isPresent ) # True

2. Использование набора

The in оператор, без сомнения, самый простой и элегантный способ найти значение в списке. Но если вам нужно выполнить несколько поисков, подумайте о преобразовании списка в набор. Поскольку поиск в наборе очень эффективен, вы можете сделать это за постоянное время.

if __name__ == ‘__main__’ :
ints = [ 1 , 2 , 3 , 4 , 5 ]
isPresent = item in set ( ints )
print ( isPresent ) # True

3. Использование словаря

Вы также можете создать словарь пар значение-индекс для выполнения множественного поиска. Это часто полезно, когда вам нужно также найти индекс элемента.

if __name__ == ‘__main__’ :
ints = [ 1 , 2 , 3 , 4 , 5 ]
indexMap = dict ( ( x , i ) for i , x in enumerate ( ints ) )
index = indexMap [ item ]
print ( f «Item is found at index » )
except KeyError :
print ( «Item not found» )
Output: Item 3 is found at index 2

В качестве альтернативы вы можете использовать get(item, default) функция, которая возвращает индекс элемента, если он присутствует; значение по умолчанию в противном случае.

if __name__ == ‘__main__’ :
ints = [ 1 , 2 , 3 , 4 , 5 ]
indexMap = dict ( ( x , i ) for i , x in enumerate ( ints ) )
index = indexMap . get ( item , — 1 )
if index != — 1 :
print ( f «Item is found at index » )
print ( «Item not found» )
Output: Item 3 is found at index 2

Это все, что касается определения того, существует ли значение в списке в Python.

Оценить этот пост

Средний рейтинг 4.81 /5. Подсчет голосов: 21

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Подписывайся
0 Комментарии
Встроенные отзывы
Просмотреть все комментарии
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации

  • Все проблемы
  • Практика DSA
  • 100 самых популярных задач
  • 50 лучших классических задач
  • Лучшие алгоритмы
  • Компилятор С/С++
  • Компилятор Java
  • Компилятор Python
  • Компилятор JavaScript
  • компилятор PHP
  • Компилятор C#
  • Свяжитесь с нами
  • Политика конфиденциальности
  • условия обслуживания
  • Подпишитесь на новые публикации

Techie Delight © 2023 Все права защищены.

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Поиск элемента в списке Python

Поиск элемента в списке Python

Сегодня я расскажу, как проверить, содержит ли список элемент с помощью разных операторов в Python.

Используя цикл for

В качестве примера, я буду использовать список строк, содержащих несколько животных:

animals = ['Dog', 'Cat', 'Bird', 'Fish']

Простой и рудиментарный метод проверки, содержит ли список элемент: наш метод проходит через элемент и проверяет, соответствует ли элемент, на котором мы находимся, тому, который мы ищем. Давайте для этого воспользуемся циклом for:

for animal in animals: if animal == 'Bird': print('Chirp!')
Chirp!

Используя оператор in

Теперь более лаконичным подходом было бы использование встроенного оператора in, но с оператором if вместо оператора for. В паре с if он возвращает True, если элемент существует в последовательности или нет. Синтаксис оператора in выглядит следующим образом:

element in list

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

if 'Bird' in animals: print('Chirp')
Chirp

Этот подход имеет ту же эффективность, что и цикл for, поскольку оператор in, используемый таким образом, вызывает функцию list.__contains__, которая по своей сути циклически проходит через список — хотя это гораздо читабельнее.

Используя оператор not in

Вы можете использовать оператор not in, который является логической противоположностью оператору in. Он возвращает True, если элемент не присутствует в последовательности.

Давайте перепишем предыдущий пример кода, чтобы использовать оператор not in:

if 'Bird' not in animals: print('Chirp')

Запуск этого кода ничего не даст, так как Bird присутствует в нашем списке.

Но если мы попробуем это с Wolf:

if 'Wolf' not in animals: print('Howl')
Howl

С помощью лямбда функции

Еще один способ проверить, присутствует ли элемент — отфильтровать все, кроме этого элемента, точно так же, как просеять песок и проверить, остались ли в конце какие-нибудь раковины. Встроенный метод filter() принимает в качестве аргументов лямбда-функцию и список. Здесь мы можем использовать лямбда-функцию для проверки нашей строки «Bird» в списке animals.

Затем мы оборачиваем результаты в list(), так как метод filter() возвращает объект filter, а не результаты. Если мы упакуем объект filter в список, он будет содержать элементы, оставшиеся после фильтрации:

retrieved_elements = list(filter(lambda x: 'Bird' in x, animals)) print(retrieved_elements)
['Bird']

Сейчас этот подход не самый эффективный. Это довольно медленнее, чем предыдущие три подхода, которые мы использовали. Сам метод filter() эквивалентен функции генератора:

(item for item in iterable if function(item))

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

Используя функцию any

Еще один отличный встроенный подход заключается в использовании функции any, которая является просто вспомогательной функцией, которая проверяет, есть ли какие-либо (по крайней мере 1) экземпляры элемента в списке. Он возвращает True или False в зависимости от наличия или отсутствия элемента:

if any(element in 'Bird' for element in animals): print('Chirp')

Поскольку это приводит к True, наш оператор print сработает:

Chirp

Этот подход также является эффективным способом проверки наличия элемента. Он ничем не уступает первым трём проверкам!

Используя метод count

Наконец, мы можем использовать функцию count, чтобы проверить, присутствует ли элемент или нет:

list.count(element)

Эта функция возвращает вхождение данного элемента в последовательность. Если он больше 0, мы можем быть уверены, что данный элемент находится в списке.

Давайте проверим результаты функции count:

if animals.count('Bird') > 0: print("Chirp")

Функция count по своей сути зацикливает список, чтобы проверить количество вхождений, и этот код приводит к запуску print:

Chirp

Заключение

В этой статье я рассмотрел несколько способов, как проверить, присутствует ли элемент в списке или нет. Я использовал цикл for, операторы in и not in, а также методы filter, any и count.

Python — как найти элемент списка?

Python - как найти элемент списка

Привет всем! Сегодня мы узнаем, как в Python найти элемент списка. Поехали!
В Python можно найти элемент списка с помощью метода index() или с помощью оператора in.
Например, посмотрим на следующий список цветов:

colors = ['красный', 'зеленый', 'синий']

Если мы хотим найти индекс цвета ‘зеленый’ в этом списке, мы можем сделать следующее:

colors = ['красный', 'зеленый', 'синий'] green_index = colors.index('зеленый') print(green_index) # выведет 1

Конечно, если мы попробуем найти, например, желтый цвет — то получим ошибку — ибо у нас нет обработки исключений. Я писал об этом здесь. В данном же случаем обработку исключений можно представить в следующем виде:

try: print(green_index) except ValueError: print("Элемент не существует в списке")

Теперь разберемся, как найти поиск элемента списка с помощью оператора in. Для примера берем все тот же список цветов �� Если мы хотим проверить, присутствует ли цвет ‘желтый’ в списке — попробуем следующий код:

colors = ['красный', 'зеленый', 'синий'] if 'желтый' in colors: print('Желтый имеется в списке цветов') else: print('Желтый не имеется в списке цветов')

Выведет ‘Желтый не имеется в списке цветов’, потому что ‘желтый’ не присутствует в списке colors.

А еще для поиска элемента списка можно использовать функцию enumerate(), которая позволяет итерироваться по списку и одновременно получать индекс нужного элемента. Используется эта функция в случае, если нужно сделать какую-либо операцию над элементом списка и одновременно знать его (этого элемента) индекс.
Для примера — возьмем код, который позволит вывести значение элемента списка и его индекс:

my_list = [1, 2, 3] for index, value in enumerate(my_list): print(f"Индекс: , Значение: ")

Надеюсь, теперь тема по поиску элемента с списке в Python стала более простой �� Как всегда — в случае возникновения вопросов пишите на почту или в Telegram.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *