Python Какой наиболее оптимальный способ проверки есть ли общий элемент? Есть строка a и кортеж signs как можно максимально сократить код, чтобы функция проверяла есть ли хотя бы один из знаков в этой строке?signs=('.','!','?')
def sign(a):
t=False
for i in a:
if i in signs:
t=True
break
return t
...
if sign(text[i].cont) and (i!=len(text)-1):
...
И можно ли заменить функцию на lambda, использовать map?

21 Авг 2019 в 06:30
159 +1
1
Ответы
1

Да, можно упростить код, используя lambda функцию и функцию any, которая возвращает True, если хотя бы один элемент в итерируемом объекте истинный:

signs = ('.', '!', '?')
sign = lambda a: any(i in signs for i in a)

Если вы хотите использовать map, вы можете сделать что-то вроде:

sign = lambda a: any(map(lambda x: x in signs, a))

Это также позволит вам использовать lambda функцию и map вместо цикла.

20 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир