我有对象列表:
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]
请帮助构建正确的模板标签。
答案 0 :(得分:1)
您可以使用列表理解在另一个列表中收集您的列表l1
,l2
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包含三个列表,则可以指定l1
,l2
,l3
l1, l2, l3 = x
当然,您也可以手动分配l1
,l2
,l3
。
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)]