【问题标题】:Python: list of lists anf HTML table helpPython:列表和 HTML 表格帮助的列表
【发布时间】:2010-07-11 21:20:16
【问题描述】:

我无法将列表列表中的值附加到 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>'

【问题讨论】:

  • 顺便说一句,如果您可以首先以不同的方式构建列表,例如[['A','Apple','Fruit'],['B','banana','Fruit']],这可能会更有意义。这样,每一行逻辑上对应一个“事物”(即苹果的一行,香蕉的一行等),再加上您尝试使用的代码就可以了。

标签: python html


【解决方案1】:

我想你正在寻找这个:

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】:

    我会这样做;

    # 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】:

      该表有两个元素,因此您可以使用 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>'
      

      【讨论】:

        猜你喜欢
        • 2015-08-25
        • 2010-09-29
        • 2017-08-22
        • 2010-11-14
        • 1970-01-01
        • 2011-01-26
        • 2017-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多