python中的format()函数 - 使用多个大括号{{{}}}

时间:2016-10-25 22:36:39

标签: python python-2.7 python-3.x string-formatting

再次:)

我找到了这段代码

col_width=[13,11]
header=['First Name','Last Name']

format_specs = ["{{:{}}}".format(col_width[i]) for i in range(len(col_width))]
lheader=[format_specs[i].format(self.__header[i]) for i in range(nb_columns)]

Python如何评估此声明?为什么我们使用三个{当我们在每次迭代中都有一个元素格式化时?

1 个答案:

答案 0 :(得分:1)

当你执行{{}}时,python会跳过{}的替换,并使其成为string的一部分。以下是解释此问题的示例:

>>> '{{}}'.format(3)  # with two '{{}}'
'{}'  # nothing added to the string, instead made inner `{}` as the part of string
>>> '{{{}}}'.format(3)  # with three '{{{}}}'
'{3}'  # replaced third one with the number

同样,您的表达式评估为:

>>> '{{:{}}}'.format(3)
'{:3}'  # during creation of "format_specs"

有关详细信息,请参阅:Format String Syntax文档。