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

format() function in python - Usage of multiple curly brackets {{{}}}

再次:)

我找到了这段代码

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评价这个说法?为什么我们在每次迭代中只有一个元素要格式化时使用三个 {?

当您执行 {{}} 时,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文档。