Как проверить наличие элемента в списке с помощью Python?

Чтобы проверить, содержит ли список элемент в Python, можно использовать оператор «in». Этот оператор возвращает True, если элемент существует в списке, и False в противном случае. Альтернативой является использование метода count().

Примечание: Термины «элемент списка» и «элемент элемента списка», используемые в данной статье, имеют одинаковое значение.

Используя оператор «in», Python выясняет, есть ли элемент в списке или нет. Он возвращает True, если элемент есть в списке, и False, если элемент отсутствует в списке.

Я открою оболочку Python, чтобы показать, как работает оператор «in»:

>>> fruits = ['orange', 'apple', 'banana', 'orange']
>>> 'orange' in fruits
True
>>> 'pineapple' in fruits
False

Оператор «in» возвращает значение True, когда вы проверяете, содержит ли список строку «orange», поскольку эта строка существует в списке.

Точно так же оператор «in» возвращает значение False, когда вы проверяете, есть ли строка «pineapple» в списке, учитывая, что эта строка не отображается в списке.

Значения True и False являются булевыми.

Как проверить, отсутствует ли элемент в списке, с помощью Python?

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

Чтобы проверить, отсутствует ли элемент в списке с помощью Python, можно использовать оператор «not in», который выполняет обратную проверку по сравнению с оператором «in». Оператор «not in» возвращает True, если элемент отсутствует в списке, и False, если элемент существует в списке.

Давайте посмотрим, как это работает, используя оболочку Python.

>>> fruits = ['orange', 'apple', 'banana', 'orange']
>>> 'orange' not in fruits
False
>>> 'pineapple' not in fruits
True

Как вы можете видеть в этом примере, когда вы проверяете, отсутствует ли строка ‘orange’ в списке, вы получаете обратно логическое значение False. Это потому, что элемент строки ‘orange’ существует в списке.

Когда вы проверяете, отсутствует ли строка ‘pineapple’ в списке, Python возвращает True. Это потому, что строка ‘pineapple’ не существует в списке.

Как проверить, содержит ли список Python элемент, используя оператор if

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

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

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

Вот как будет выглядеть код Python для этого:

products = ['chair', 'table', 'lamp']
new_product = 'coffee mug'

if new_product in products:
    print(f"The {new_product} is already in the inventory.")
else:
    print(f"The {new_product} is not in the inventory and it will be added to it.")

Прежде всего, создайте список products, содержащий текущий запас продукции.

Затем присвойте значение ‘кофейная кружка’ строковой переменной new_product. Это всего лишь пример, в реальной программе это значение будет получено от пользователя, например, с помощью функции input().

Следующий шаг включает использование оператора if для проверки new_product, есть ли уже в списке products. Для этого мы используем «оператор in», описанный ранее.

Затем вы печатаете сообщение, которое меняется в зависимости от того, находится ли в списке new_product. Операторы печати в блоках if и else используют F-строки Python.

Вы можете улучшить код, добавив new_product в productsсписок элемент, если его нет в списке.

Вот как изменяется тело оператора if:

if new_product in products:
    print(f"The {new_product} is already in the inventory.")
else:
    print(f"The {new_product} is not in the inventory and it will be added to it.")
    products.append(new_product)
    print(f"The updated inventory is {products}")

Если new_product нет в списке продуктов, вы используете метод append(), чтобы добавить его в список. Затем вы печатаете обновленный список продуктов.

Использование метода list count() для проверки наличия элемента в списке

Метод списка count() можно использовать для проверки наличия элемента в списке Python, поскольку метод count() возвращает количество раз, которое данный элемент появляется в списке. Элемент находится в списке, если значение, возвращаемое методом count(), больше 0.

Начнем с примера с использованием оболочки Python:

>>> fruits = ['orange', 'apple', 'banana', 'orange']
>>> fruits.count('orange')
2
>>> fruits.count('pineapple')
0

В приведенном выше примере вы можете увидеть нечто важное: одно из различий между использованием оператора «in» и метода count() заключается в том, что последний также может определить, встречается ли элемент в списке более одного раза.

Вот как можно использовать метод list count() как часть оператора if/else:

products = ['chair', 'table', 'lamp']
new_product = 'coffee mug'

if products.count(new_product) > 0:
    print(f"The {new_product} is already in the inventory.")
else:
    print(f"The {new_product} is not in the inventory and it will be added to it.")
    products.append(new_product)
    print(f"The updated inventory is {products}")

Метод count() может быть полезен, поскольку он сообщает, сколько раз элемент встречается в списке.

Но есть еще кое-что, что следует учитывать…

Метод count() менее эффективен, чем «оператор in». Это связано с тем, что «оператор in» прекращает поиск, когда находит элемент, в то время как метод count() сканирует весь список для подсчета вхождений. Это может занять много времени для больших списков.