有没有办法更有效地格式化这个字符串?

Is there a way to format this string more efficiently?

我想使用 format 方法用元组格式化此文本,想知道是否有更好的方法...

data = (1, 2, 3, 4, 5, 6)

output_text = "KP: {}\nData 1: {}\nData 2: {}\nData 3: {}\nData 4: {}\nData 5: {}\n".format(data[0], data[1], data[2], data[3], data[4], data[5])

您可以使用 * 运算符解压 data,如 <format str>.format(*data)

>>> data = (1, 2, 3, 4, 5, 6)
>>> "KP: {}\nData 1: {}\nData 2: {}\nData 3: {}\nData 4: {}\nData 5: {}\n".format(*data)
'KP: 1\nData 1: 2\nData 2: 3\nData 3: 4\nData 4: 5\nData 5: 6\n'

为了进一步简化它并使其适用于任意长度,您可以像下面这样使用 enumeratechain

>>> from itertools import chain
>>> ('Data {}: {}\n' * len(data)).format(*chain(*enumerate(data)))
'Data 0: 1\nData 1: 2\nData 2: 3\nData 3: 4\nData 4: 5\nData 5: 6\n'

您还可以在字符串格式中使用很多 python 语法。

>>> data = (1, 2, 3, 4, 5, 6)
>>> "KP: {data[0]}\nData 1: {data[1]}\nData 2: {data[2]}\nData 3: {data[3]}"
    "\nData 4: {data[4]}\nData 5: {data[5]}\n".format(data=data)