f字符串内部的字典/集合理解

Con*_*ice 5 python dictionary-comprehension set-comprehension f-string

在python 3.6+中的f字符串中是否可能有字典或设置理解力?

在语法上似乎是不可能的:

names = ['a', 'b', 'c']
pks = [1, 2, 3]

f"{{name : pk for name, pk in zip(names, pks)}}"
Run Code Online (Sandbox Code Playgroud)

这将返回:

{name : pk for name, pk in zip(names, pks)}
Run Code Online (Sandbox Code Playgroud)

这是预期的行为,双括号会在输出中产生文字括号,因为不对表达式求值。

有没有人找到一种解决方法来允许在f字符串内部进行字典/集合理解?

Lar*_*erg 10

正如@vaultah 评论的那样:

添加空格,它们在语法上是必需的,不会出现在结果字符串中:

names = ['a', 'b', 'c']
pks = [1, 2, 3]
f"{ {name: pk for name, pk in zip(names, pks)} }"
Run Code Online (Sandbox Code Playgroud)