比How to implement conditional string formatting?更进一步
基本上:是否可以在格式字符串中添加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'))
这些问题的作者询问是否可以在字符串格式化中添加if,elif,else。因此,我假设作者想要根据某些条件更改字符串的值,但是出于某些原因想要使用if,elif,else。
这是我的答案:
t = ['Ciao' if x == 'it' else ('Hi' if x == 'en' else 'Hola') for x in ['it', 'en', 'es']]
我个人不喜欢,如果,elif,其他逻辑在这种情况下。
虽然我不推荐它 - 回答这个问题:
无法在格式字符串中使用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