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