Как найти и проверить, присутствует ли строка в списке Python
Мы можем использовать оператор in в Python, чтобы проверить, присутствует ли строка в списке или нет. Также есть оператор not in, чтобы проверить, отсутствует ли строка в списке.
Давайте посмотрим на другой пример, где мы попросим пользователя ввести строку для проверки в списке.
Как найти строку в списке с помощью count()
Мы также можем использовать функцию count(), чтобы получить количество появлений строки в списке. Если его вывод равен 0, это означает, что строки нет в списке.
Поиск всех индексов строки в списке
Нет встроенной функции для получения списка всех индексов строки в списке. Вот простая программа для получения списка всех индексов, в которых строка присутствует в списке.
Python: Find in list [duplicate]
Is " if item in my_list: " the most "pythonic" way of finding an item in a list?
EDIT FOR REOPENING: the question has been considered dupplicate, but I’m not entirely convinced: here this question is roughly "what is the most Pythonic way to find an element in a list". And the first answer to the question is really extensive in all Python ways to do this.
Whereas on the linked dupplicate question and its corresponding answer, the focus is roughly only limited to the ‘in’ key word in Python. I think it is really limiting, compared to the current question.
And I think the answer to this current question, is more relevant and elaborated that the answer of the proposed dupplicate question/answer.
14 Answers 14
As for your first question: " if item is in my_list: " is perfectly fine and should work if item equals one of the elements inside my_list . The item must exactly match an item in the list. For instance, "abc" and "ABC" do not match. Floating point values in particular may suffer from inaccuracy. For instance, 1 — 1/3 != 2/3 .
As for your second question: There’s actually several possible ways if "finding" things in lists.
Checking if something is inside
This is the use case you describe: Checking whether something is inside a list or not. As you know, you can use the in operator for that:
Filtering a collection
That is, finding all elements in a sequence that meet a certain condition. You can use list comprehension or generator expressions for that:
The latter will return a generator which you can imagine as a sort of lazy list that will only be built as soon as you iterate through it. By the way, the first one is exactly equivalent to
in Python 2. Here you can see higher-order functions at work. In Python 3, filter doesn’t return a list, but a generator-like object.
Finding the first occurrence
If you only want the first thing that matches a condition (but you don’t know what it is yet), it’s fine to use a for loop (possibly using the else clause as well, which is not really well-known). You can also use
which will return the first match or raise a StopIteration if none is found. Alternatively, you can use
Finding the location of an item
For lists, there’s also the index method that can sometimes be useful if you want to know where a certain element is in the list:
However, note that if you have duplicates, .index always returns the lowest index.
If there are duplicates and you want all the indexes then you can use enumerate() instead:
5 способов поиска элемента в списке Python
Статьи
Введение
В ходе статьи рассмотрим 5 способов поиска элемента в списке Python.
Поиск методом count
Метода count() возвращает вхождение указанного элемента в последовательность. Создадим список разных цветов, чтобы в нём производить поиск:
Зададим условие, что если в списке colors присутствует элемент ‘yellow’, то в консоль будет выведено сообщение, что элемент присутствует. Если же условие не сработало, то сработает else, и будет выведена надпись, что элемента отсутствует в списке:
Поиск при помощи цикла for
Создадим цикл, в котором будем перебирать элементы из списка colors. Внутри цикла зададим условие, что если во время итерации color приняла значение ‘yellow’, то элемент присутствует:
Поиск с использованием оператора in
Оператор in предназначен для проверки наличия элемента в последовательности, и возвращает либо True, либо False.
Зададим условие, в котором если ‘yellow’ присутствует в списке, то выводится соответствующее сообщение:
В одну строку
Также можно найти элемент в списке при помощи оператора in всего в одну строку:
Или можно ещё вот так:
Поиск с помощью лямбда функции
В переменную filtering будет сохранён итоговый результат. Обернём результат в список (list()), т.к. метода filter() возвращает объект filter. Отфильтруем все элементы списка, и оставим только искомый, если он конечно присутствует:
Итак, если искомый элемент находился в списке, то он сохранился в переменную filtering. Создадим условие, что если переменная filtering не пустая, то выведем сообщение о присутствии элемента в списке. Иначе – отсутствии:
Поиск с помощью функции any()
Функция any принимает в качестве аргумента итерабельный объект, и возвращает True, если хотя бы один элемент равен True, иначе будет возвращено False.
Создадим условие, что если функция any() вернёт True, то элемент присутствует:
Внутри функции any() при помощи цикла производится проверка присутствия элемента в списке.
Заключение
В ходе статьи мы с Вами разобрали целых 5 способов поиска элемента в списке Python. Надеюсь Вам понравилась статья, желаю удачи и успехов!
Найти индекс всех вхождений элемента в списке Python
В этом посте будет обсуждаться, как найти индекс всех вхождений элемента в списке Python.
1. Использование enumerate() функция
Чтобы получить индекс всех вхождений элемента в список, вы можете использовать встроенную функцию enumerate() . Он был введен для решения задачи счетчика циклов и может использоваться следующим образом:
Чтобы получить список всех индексов сразу, используйте понимание списка с функцией перечисления:
2. Использование range() функция
В качестве альтернативы вы можете использовать range() функция, чтобы получить список всех допустимых индексов, а затем сопоставить соответствующее значение, присутствующее в каждом индексе, с данным элементом.
3. Использование itertools модуль
Другой подход заключается в использовании count() функционировать в itertools , который создает итератор для эффективного цикла, чтобы возвращать равномерно распределенные значения, начиная с заданного числа. Вы можете использовать его с zip() для добавления порядковых номеров следующим образом.