【问题标题】:Python F string, insert string with curly brackets inside curly bracketPython F字符串,在大括号内插入带大括号的字符串
【发布时间】:2022-11-18 23:34:25
【问题描述】:

我有一个值列表,我想在 f 字符串的括号内插入。 列表的长度会不时不同,因此我会为每种情况制作一个长度正确的字符串。这个想法是创建一个正确长度的字符串,然后将它插入到 f 字符串中。这失败了,因为它被读取为一个字符串。是否有其他解决方法来获得相同的结果,或者它是我不知道的 f-string 的一个特性?

values = [['First Name Last name', 20],['First Name Last name', 25],['First Name Last name', 30]]
test = [1]*3
for i in range(3):
    val = f'''values[{i}]''' #First create innerpart
    test[i] = f'''({{{val}}})''' #Then encapsulate it in curly brackets and paranthesis
insert = ' '.join(test)
f'''Test {insert}'''

输出:'测试({values[0]})({values[1]})({values[2]})'

我想要的输出:'Test('First Name Last Name',20) ('First Name Last Name',25) ('First Name Last Name',30)'

试图找到在没有成功的情况下转义字符串中的引号的方法。

【问题讨论】:

  • 这回答了你的问题了吗? How to escape curly-brackets in f-strings?。总之,您必须使用 2 个支架而不是一个。
  • test[i] = f"({values[i]})" 您可以在 f 字符串中使用列表索引(或几乎任何 python 表达式)。字符串的内容与将其插入 fstring 的方式无关。

标签: python-3.x f-string


【解决方案1】:

不确定所有这些花括号在做什么, 但这是一个简单得多的循环:

values = [['First Name Last name', 20],['First Name Last name', 25],['First Name Last name', 30]]    
test = ""
for val in values:
    test += f"({val}) "

print(f"Test{test})

这样,您不必“硬编码”长度 的字符串/值。

【讨论】:

    最近更新 更多