【问题标题】:Dictionary/set comprehensions inside of f-stringf-string 中的字典/集合理解
【发布时间】:2018-08-13 16:16:24
【问题描述】:

在 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 只有前导空格是必不可少的,尽管尾随空格可能有利于对称
  • 空格和括号似乎有效,但省略号无效:)

标签: python dictionary-comprehension f-string set-comprehension


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-08-06
    • 1970-01-01
    • 2011-12-03
    • 2016-10-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多