python字符串格式里面的元组?

时间:2017-10-31 17:30:57

标签: python string string-formatting python-3.5

基本上,我正在尝试将Latex代码模板化,我需要输出B_{i}之类的字符串,并且我想调用字符串格式来更改i。但问题是使用Python的字符串格式 - 使用元组来表示参数 - 当我想在输出的字符串中维护元组时,一直在给我带来麻烦。

实施例

假设我有:

subscript = "22"
value = "10"
stringy = "B_{{0}} = {1}".format(subscript, value)"

当我打印stringy时,我得到:

B_{0} = 10

我想得到:

B_{22} = 10

4 个答案:

答案 0 :(得分:2)

print("B_{{{0}}} = {1}".format(subscript, value)) 

{{会在输出中打印出{个字符,因此您需要另一个{}来实际访问该变量

答案 1 :(得分:2)

将外括号加倍以逃避它们,因此总共需要3对:

stringy = "B_{{{0}}} = {1}".format(subscript, value)
print(stringy)
# B_{22} = 10

正如您当前的解决方案中所示,双重大括号{{...}}已转义,不参与格式化。因此,您需要包含额外的大括号层。

答案 2 :(得分:2)

你快到了。您正确地将{}字符翻了一倍,以便它们在字面上显示在格式化结果中。但是,您现在没有第一个值的占位符,需要在格式字符串中将其表示为{0}

所以:

stringy = "B_{{{0}}} = {1}".format(subscript, value)

答案 3 :(得分:1)

你还需要一对大括号:

subscript = "22"
value = "10"
stringy = "B_{{{0}}} = {1}".format(subscript, value)

print(stringy)  # 'B_{22} = 10'

这是因为您需要双倍("{{")才能打印文字花括号。 外部的两个字母打印文字{},中间{0}subscript替换。