通过 f 字符串插入 str.join()

Interpolation of a str.join() via f-string

正在尝试插入 str.join() 操作:

>>> a = ["a", "b"]
>>> " ".join(a)
'a b'
>>> str = f"data -> {" ".join(a)}"
  File "<stdin>", line 1
SyntaxError: f-string: expecting '}'

f-String不允许插值这样的操作?

这样试试:

a = ["a", "b"]
tmp = " ".join(a)
str = f"data --> {tmp}"
str

输出:

'data --> a b'

没有什么能阻止您在 join 方法上使用 f 插值。

这里发生的事情是你用第二个 " 结束你的字符串。这会导致语法错误,因为您的 f 字符串中只存在一个 {。使用三重引号或单引号,以便引号字符可以包含在您的字符串中。

>>> f"""data -> {" ".join(a)}"""
'data -> a b'
>>> f'data -> {" ".join(a)}'
'data -> a b'