首页 > 解决方案 > 如何准备字符串以使用不明确的数组进行格式化?

问题描述

我需要将数组格式化为字符串,但是字符串是事先准备好的并存储的。基本上我有一个看起来像这样的字符串列表:

text = [
'Data Item 1: %.2f',
'Data Item 2: %.2f',
'Data Item 3: %.2f'
]

然后循环遍历该列表,并将数据分配给它,如下所示:

for i in range(len(text)):
  print(text[i] % data[i])

这工作正常,但现在我希望能够将一个字符串添加到我的文本列表中,稍后将与这样的列表项配对:

text = [
'Data Item 1: %.2f',
'Data Item 2: %.2f',
'Data Item 3: %.2f',
'Num List: <FORMATTING NEEDED>'
]

data = [0.3, 2.1, 4.9, [1, 2, 3, 4]]

for i in range(len(text)):
  print(text[i] % data[i])

我希望这具有以下结果:

Data Item 1: 0.30
Data Item 2: 2.10
Data Item 3: 4.90
Num List: 1,2,3,4

到目前为止,与我正在寻找的最接近的东西看起来像这样:

'Num List: ['+", ".join(['%.2f']*len(x))+"]'

但我还没有'x'。我需要为不能立即使用的列表准备字符串。我希望我正确地解释了我的需求。

标签: pythonstringformatting

解决方案


您根据需要显示的结果没有列表的括号,但是在您的尝试代码中您正在使用它们,所以我假设它们没问题。

在这种情况下,您可以执行以下操作:

print('Num List: %s' % [1,2,3,4])

打印:

Num list: [1, 2, 3, 4]

推荐阅读