Python 如何参数化string.format()格式规范?

Python 如何参数化string.format()格式规范?,python,string,parameter-passing,string-formatting,Python,String,Parameter Passing,String Formatting,我有一个变量line\u number\u max\u digits,我想在字符串格式规范中将它用作标记。我想出了以下代码: print ('{0:>%d}: {1}' % line_number_max_digits).format(lineno + i, chunk) 但我知道百分比格式最终将从Python中消失。我可以使用或使用两次,但这会使我的代码不那么清晰: print ('{{0:>{0}}}: {{1}}').format(line_number_max_digits

我有一个变量
line\u number\u max\u digits
,我想在字符串格式规范中将它用作标记。我想出了以下代码:

print ('{0:>%d}: {1}' % line_number_max_digits).format(lineno + i, chunk)
但我知道百分比格式最终将从Python中消失。我可以使用或使用两次,但这会使我的代码不那么清晰:

print ('{{0:>{0}}}: {{1}}').format(line_number_max_digits).format(lineno + i, chunk)

在这种情况下,哪种方法被认为是一种好的做法?

嵌套支持有限


我将它们放在单独的行中,首先生成格式化字符串,然后生成格式化结果。这样内联会使它不那么可读。
print('{1:>{0}}: {2}'.format(line_number_max_digits, lineno + i, chunk))