拆分清单为3部分

时间:2014-06-04 11:59:49

标签: python django-templates

我有对象列表:

l = [1, 2, 3, 4, 5, 6]

我找到了一些代码段。http://herself.movielady.net/2008/07/16/split-list-to-columns-django-template-tag/

但他们这样分开:

[1, 2] [3, 4] [5, 6]

我需要这样的拆分列表:

l1 = [1, 4]
l2 = [2, 5]
l3 = [3, 6]

请帮助构建正确的模板标签。

2 个答案:

答案 0 :(得分:1)

您可以使用列表理解在另一个列表中收集您的列表l1l2 l3,然后对他们执行某些操作。例如:

l = [1, 2, 3, 4, 5, 6]
x = [[l[i]] + [l[i+3]] for i in range(len(l) - 3)]
for a in x:
    print(a)

会帮你的

[1, 4]
[2, 5]
[3, 6]

如果您知道x包含三个列表,则可以指定l1l2l3

l1, l2, l3 = x

当然,您也可以手动分配l1l2l3

l1 = [l[0]] + [l[3]]
...

答案 1 :(得分:1)

h = int(len(l)/2)
l1, l2, l3 = zip( l[:h], l[h:] )

l[:h]是上半场,l[h:]是下半场。请参阅list slices

>>> l[:h], l[h:]
([1, 2, 3], [4, 5, 6])

然后是zip功能,请参阅zip

>>> zip([1, 2, 3], [4, 5, 6])
[(1, 4), (2, 5), (3, 6)]