Python:列表列表和HTML表格帮助

时间:2010-07-11 21:20:17

标签: python html

我无法将列表列表中的值附加到html表中,例如列表中包含以下内容的列表:

food_list = [['A','B'], ['Apple','banana'], ['Fruit','Fruit']]

如何将每个值附加到对应的HTML表格中?所以代码看起来像:

<table>
<tr><td>A</td><td>Apple</td><td>Fruit</td></tr>
<tr><td>B</td><td>Banana</td><td>Fruit</td></tr>
</table>

我能得到的最接近的是下面的代码,但我得到的列表索引超出范围错误。

print '<table>'
for i in food_list:
    print '<tr>'
    print '<tr><td>'+i[0]+'</td><td>'+i[1]+'</td><td>'+i[2]+'</td></tr>'
    print '</tr>'
print' </table>'

3 个答案:

答案 0 :(得分:3)

我会这样做;

# Example data.
raw_rows = [["A", "B"], ["Apple", "Banana"], ["Fruit", "Fruit"]]
# "zips" together several sublists, so it becomes [("A", "Apple", "Fruit"), ...].
rows = zip(*raw_rows) 

html = "<table>"
for row in rows:
   html += "<tr>"
   # Make <tr>-pairs, then join them.
   html += "\n".join(map(lambda x: "<td>" + x + "</td>", row)) 
   html += "</tr>"

html += "</table>"

也许不是最快的版本,但它将行包装成元组,然后我们可以迭代它们并连接它们。

答案 1 :(得分:2)

我认为你正在寻找这个:

print '<table>'
for i in zip(*food_list):
    print '<tr>'
    print '<td>'+i[0]+'</td><td>'+i[1]+'</td><td>'+i[2]+'</td>'
    print '</tr>'
print' </table>'

答案 2 :(得分:0)

该表有两个元素,因此您将使用0和1作为索引。以下是您重写的示例:

print '<table>'
for i in food_list:
    print '<tr>'
    print '<tr><td>'+i[0]+'</td><td>'+i[1]+'</td></th>'
    print '</tr>'
print' </table>'