【发布时间】:2020-05-14 07:48:57
【问题描述】:
如何在 f-string 中插入 for 循环或 if 表达式?
我最初想为if 表达式做这样的事情:
f'{a:{"s" if CONDITION else "??"}}'
我想做的事情是这样的:
示例 1
f'{key: value\n for key, value in dict.items()}'
结果:
如果 dict = {'a': 1, 'b': 2}
a: 1
b: 2
或示例 2
c = 'hello'
f'{c} {name if name else "unknown"}'
结果:
如果名称存在,例如name = '迈克'
hello Mike
否则
hello unknown
这可以做到吗?如果可以,怎么做?
【问题讨论】:
-
第二个例子的预期结果是什么?
-
您不能在
f字符串中放入语句,只能放入表达式。... if ... else ...不是if声明;这是一个条件表达式。 -
请提供每个预期输出的示例
-
如果
name未实际设置,第二个将引发NameError,不被视为假值。 -
第一个根本不是表达式;它是 dict 理解的一个片段。
标签: python python-3.x f-string