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