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

0 投票
3 回答
3716 浏览
提问于 2025-04-16 01:08

我在把一个列表里的列表的值添加到一个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

这个表格里有两个元素,所以你可以用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>'
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>"

这可能不是最快的方式,但它把每一行的数据打包成了一组组的元组,然后我们可以简单地遍历这些元组,把它们连接起来。

3

我想你是在找这个:

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>'

撰写回答