Условное форматирование строки с помощью if, elif - PullRequest
0 голосов
/ 20 марта 2019

на шаг дальше, чем Как реализовать условное форматирование строки?

В основном: возможно ли добавить if, elif .... else в строку формата?

l = ['it', 'en', 'es']

for i in l:
    print('{tit}'.format(tit='Ciao' if i == 'it' elif i == 'en' tit='Hi' else 'Hola'))

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Хотя я бы не советовал - ответить на вопрос:

не можно использовать elif в строке формата.

Однако можно использовать вложенные условные выражения:

l = ['it', 'en', 'es']

for i in l:
    print('{tit}'.format(tit=('Ciao' if i == 'it' else 'Hi' if i == 'en' else 'Hola')))

выходы:

Ciao
Hi
Hola

см. https://docs.python.org/3/reference/expressions.html#conditional-expressions

0 голосов
/ 20 марта 2019

Автор вопросов спрашивает, возможно ли добавить if, elif, else в форматирование строки. Итак, я предполагаю, что автор хочет изменить значение строки в зависимости от некоторых условий, но хочет использовать if, elif, else по некоторым причинам.

Вот мой ответ:

t = ['Ciao' if x == 'it' else ('Hi' if x == 'en' else 'Hola') for x in ['it', 'en', 'es']]

Лично мне не нравится, если, элиф, еще логика в таком случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...