Поиск в списке: in
Есть ли имя в списке гостей? Есть ли молоко в списке покупок? На такие вопросы отвечает оператор in. Выражение value in items равно True, если список items содержит значение, и False, если нет:
guests = ["Анна", "Игорь", "Люба"]
print("Игорь" in guests)
print("Павел" in guests)Вывод:
True
FalseЛогическое значение — это ровно то, что нужно условию, поэтому in чаще всего используют вместе с if:
guests = ["Анна", "Игорь", "Люба"]
visitor = "Игорь"
if visitor in guests:
print("Проходите!")
else:
print("Извините, вас нет в списке.")Вывод:
Проходите!Противоположность — not in: выражение value not in items равно True, когда значения в списке нет. Это удобно, когда нужно добавить что-то, только если этого ещё нет в списке:
shopping = ["молоко", "хлеб"]
item = "яйца"
if item not in shopping:
shopping.append(item)
print(shopping)Вывод:
['молоко', 'хлеб', 'яйца']С помощью in можно также избежать ошибки ValueError из предыдущего упражнения. Если написать if "масло" in shopping: перед shopping.remove("масло"), значение удалится, только если оно есть в списке.
Как и ==, оператор in сравнивает точно: "игорь" in guests равно False, потому что "игорь" с маленькой буквы — не тот же текст, что "Игорь".
Задание
- 1
Напишите инструкцию
ifс условиемvisitor in guestsи в её блоке выведитеПроходите!(Люба есть в списке, поэтому программа это выведет). - 2
Добавьте ветку
else, которая выводитИзвините, вас нет в списке.Затем измените значениеvisitorна"Павел"(в строкеvisitor = "Люба"). Павла в списке нет, поэтому теперь программа должна вывестиИзвините, вас нет в списке.