在python 3.6+中,是否可以在f字符串中包含字典或集合理解?
在句法上似乎是不可能的:
names = ['a', 'b', 'c']
pks = [1, 2, 3]
f"{{name : pk for name, pk in zip(names, pks)}}"
这将返回:
{name : pk for name, pk in zip(names, pks)}
这是预期的行为,双括号会导致输出中出现文字括号,因为表达式未计算。
有没有人找到一个解决办法,允许在f字符串内部进行字典/集合理解?
最佳答案
正如@vaultah所说:
添加空格:
names = ['a', 'b', 'c']
pks = [1, 2, 3]
f"{ {name: pk for name, pk in zip(names, pks)} }"