RoMoN777
@RoMoN777
программист любитель на python

Как сделать цикл for и условие if in в одну строку?

Есть код:
for command in ["привет", "хай"]:
            if command in text:
                        print("Привет")

вопрос следующего типа...
цикл for с последующим условием if in будет использоваться более 1000 раз.
Можно ли как то сократить в 1 строку?
  • Вопрос задан
  • 1291 просмотр
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
цикл for с последующим условием if in будет использоваться более 1000 раз.
Можно ли как то сократить в 1 строку?

Можешь пояснить, какая вообще связь между длиной кода и числом использований?

В принципе ты можешь использовать регулярные выражения под эти цели. Они более гибкие, чем просто набор подстрок.

Сейчас выглядит как будто ты пишешь этакого чат-бота для терминала. Если я прав, то длинная цепочка из if-elif-elif тут не подойдёт.

Но если прямо невтерпёж, то
if any(word in text for word in ["привет", "хай"]):
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
походу, никак
C:\Users\User>py
Python 3.10.8 (tags/v3.10.8:aaaf517, Oct 11 2022, 16:50:30) [MSC v.1933 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> text = '123'
>>> print('hello') if command in text for command in ["привет", "хай"]
  File "<stdin>", line 1
    print('hello') if command in text for command in ["привет", "хай"]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: expected 'else' after 'if' expression
>>> print('hello') if command in text else pass for command in ["привет", "хай"]
  File "<stdin>", line 1
    print('hello') if command in text else pass for command in ["привет", "хай"]
                                           ^^^^
SyntaxError: invalid syntax
>>> print('hello') if command in text else ... for command in ["привет", "хай"]
  File "<stdin>", line 1
    print('hello') if command in text else ... for command in ["привет", "хай"]
                                               ^^^
SyntaxError: invalid syntax
>>> print('hello') if command in text else print('',end='') for command in ["привет", "хай"]
  File "<stdin>", line 1
    print('hello') if command in text else print('',end='') for command in ["привет", "хай"]
                                                            ^^^
SyntaxError: invalid syntax
>>> command print('hello') if command in text else print('',end='') for command in ["привет", "хай"]
  File "<stdin>", line 1
    command print('hello') if command in text else print('',end='') for command in ["привет", "хай"]
            ^^^^^
SyntaxError: invalid syntax
>>> print('hello') if command in text else print('',end='') command for command in ["привет", "хай"]
  File "<stdin>", line 1
    print('hello') if command in text else print('',end='') command for command in ["привет", "хай"]
                                                            ^^^^^^^
SyntaxError: invalid syntax
>>> print('hello') if command in text else print('',end='') for command in ["привет", "хай"]
  File "<stdin>", line 1
    print('hello') if command in text else print('',end='') for command in ["привет", "хай"]
                                                            ^^^
SyntaxError: invalid syntax
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы