将列表元素添加到多行字符串

时间:2018-10-15 08:33:33

标签: python

我正在尝试编写一个函数,该函数使用生成的列表中的信息自动设置HTML文件。下面的该块是多行字符串的一部分。

`"""...
<tr>
  <td>10</td>
  <th>"""+str(List_Data[9])+"""</th>
  <th>"""+str(Extra_Data[9])+"""</th>
</tr>
</table>
..."""`

Extra_Data是数字等级的列表,因此Extra_Data [9] = 7.2。当我运行代码时,出现以下错误;

`<th>"""+str(Extra_Data[9])+"""</th>
TypeError: can only concatenate str (not "list") to st`

我不确定我还能如何使用它,因为str(Extra_Data [9])不能解决问题,这是我可以想到的将所有列出的数据分开的唯一方法HTML代码。任何帮助将不胜感激!

谢谢。

2 个答案:

答案 0 :(得分:1)

Python具有非常方便的字符串格式化方法.format(),请看here。您所需要做的只是遵循以下步骤:

a = """
<tr>
  <td>10</td>
  <th>{0}</th>
  <th>{1}</th>
</tr>
</table>
""".format(List_Data[9], Extra_Data[9])

print a

漩涡括号{n}中的数字是.format()函数第n个索引处参数的占位符。

要更进一步,您可以遍历数据列表以编程方式创建每一行:

Table_Array = list()

for index, value in enumerate(List_Data):
    Table_Array.append("""
                       <tr>
                           <td>{0}</td>
                           <th>{1}</th>
                           <th>{2}</th>
                       </tr>
                       """.format(index, List_Data[index], Extra_Data[index])

答案 1 :(得分:1)

因此,在我疯狂地尝试解决此问题的过程中。我改变了这一行。 <th>"""+str(float(Extra_Data[9]))+"""</th>,然后开始工作。我不知道为什么,所以我将其更改回原始行,然后继续工作。对于为什么会发生这种情况,我感到非常困惑,但是就目前而言,我的代码可以正常工作,并且与不工作时的代码相同。我不确定为什么或如何。