Обьясните что происходит после return, и как это записать проще и понятнее?
Смысл функции игнорировать регистры в списке.
def is_contains(string: str, list_: list):
count_calls()
return True if string.lower() in [word.lower() for word in list_] else False
Ответы (3 шт):
Автор решения: u111
→ Ссылка
Вот что это значит:
def is_contains(string: str, list_: list):
count_calls()
lst = [] # Генератор
for word in list_:
lst.append(word.lower())
if string.lower() in lst: # Тернарный оператор
return True
else:
return False
Автор решения: Artem Gafarov
→ Ссылка
Тот же функционал можно переписать следующим образом:
def is_contains(string: str, list_: list):
count_calls()
string = string.lower()
for word in list_:
if word.lower() == string:
return True
return False
Автор решения: Vladimir Bogdanov
→ Ссылка
Чтобы не создавать список и не тратить память понапрасну, берем генератор и потребляем его в функции any. Что in, что ==, все равно. Как только any встретит успешное равенство, перебор списка слов прекращается и возвращается True. Иначе вернет False.
def is_contains(string: str, list_: list):
count_calls()
return any(string.lower() == word.lower() for word in list_)