Как проверить, существует ли элемент в списке с помощью 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, когда вы проверяете, содержит ли список строку «оранжевый», поскольку эта строка существует в списке.

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

Значения 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

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

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

Как проверить, содержит ли список 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 нет в списке продуктов, вы используете метод listappend(), чтобы добавить его в список. Затем вы распечатываете обновленный список продуктов.

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

Метод list 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() сканирует весь список для подсчета вхождений. Для больших списков это может занять много времени.