python字符串格式中的元组?
Posted
技术标签:
【中文标题】python字符串格式中的元组?【英文标题】:Tuples inside of python string formatting? 【发布时间】:2018-04-12 23:15:05 【问题描述】:基本上,我正在尝试模板化 Latex 代码,其中我需要输出 B_i
之类的字符串,并且我想调用字符串格式来更改 i
。但问题是,当我想在输出的字符串中维护元组时,使用 Python 的字符串格式(它使用元组来表示参数)给我带来了麻烦。
示例
假设我有:
subscript = "22"
value = "10"
stringy = "B_0 = 1".format(subscript, value)"
当我打印stringy
时,我得到:
B_0 = 10
我想得到:
B_22 = 10
【问题讨论】:
转义字符? 这与元组有什么关系?您的代码中没有元组,str.format()
没有“使用元组来表示参数”。
【参考方案1】:
print("B_0 = 1".format(subscript, value))
将在输出中打印出一个
字符,因此您需要另一个
才能实际访问该变量
【讨论】:
【参考方案2】:将外部大括号加倍以避开那些,因此总共有 3 对:
stringy = "B_0 = 1".format(subscript, value)
print(stringy)
# B_22 = 10
在您当前的解决方案中可以看到,双括号 ...
被转义并且不参与格式化。因此,您需要包括那层额外的大括号。
【讨论】:
【参考方案3】:你快到了。您正确地将 和
字符加倍,以便它们在格式化结果中逐字出现。但是,您现在没有任何用于第一个值的占位符,它需要在格式字符串中表示为
0
。
所以:
stringy = "B_0 = 1".format(subscript, value)
【讨论】:
【参考方案4】:你还需要一对大括号:
subscript = "22"
value = "10"
stringy = "B_0 = 1".format(subscript, value)
print(stringy) # 'B_22 = 10'
这是因为您需要使用 double (""
) 来打印文字大括号。
外面的两个打印文字,中间的
0
被subscript
替换。
【讨论】:
以上是关于python字符串格式中的元组?的主要内容,如果未能解决你的问题,请参考以下文章