在python中每隔四个元素生成一个封闭的div标签

时间:2014-01-15 04:53:06

标签: python html

我有一个元素列表,我需要生成一堆元素:

<div class="row">
    <div class="row-element"> datapoint 1</div>
    <div class="row-element"> datapoint 2</div>
    <div class="row-element"> datapoint 3</div>
    <div class="row-element"> datapoint 4</div>
</div>

.... # And so on

尝试这样做很棘手。列表some_list长度可以是奇数甚至是奇数。每个div行最多应有四个子行元素。

for i,x in enumerate(some_list):
    if i%4 == 0:
         print '<div class="row">'
         tmp = i+4

    print '<div class="row-element">' + x + '</div>'

    if tmp-1==i:
        print '</div>'

这种方法只有在列表可以被4整除的情况下才有效,而且代码真的很难看。

如何在python中干净地为偶数和奇数元素生成封闭的div标签?

2 个答案:

答案 0 :(得分:1)

将文档加载到类似lxml.html document的内容,并使用此great answer

中的技巧
>>> list(chunks(range(0, 11), 4))
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]

答案 1 :(得分:0)

我不知道这是否真的更干净......我在{I}打印</div>两个我不太喜欢的地方。

for i, x in enumerate(some_list):
    if not i % 4:
        if i:
            print '</div>'
        print '<div class="row">'

    print '<div class="row-element">' + x + '</div>'

print '</div>'