在GAE Python模板中迭代2个循环

时间:2013-11-29 17:53:48

标签: python list google-app-engine jinja2

我在python中使用Jinja2模板用于Google App Engine。我需要在html文件的同一循环中遍历2个列表list1和list2。我尝试使用一些帖子中描述的zip,但它不起作用。 C中的类似内容:for(i=0.j=0; I<len(list1) && j < len(list2) ; I++,j++)

有人可以建议一些实现相同的方法吗?

2 个答案:

答案 0 :(得分:0)

如果您有list1list2,则可以使用list并按照以下方式对其进行定义:

list = zip(list1[:min(len(list1), len(list2))], list2[:min(len(list1), len(list2))])

或更好

size = min(len(list1), len(list2))
list = zip(list1[:size], list2[:size])

示例:

>>> list1 = [1,2,3,4]
>>> list2 = [1,2,3,4,5,6,7]
>>> list = zip(list1[:min(len(list1), len(list2))], list2[:min(len(list1), len(list2))])
>>> list
[(1, 1), (2, 2), (3, 3), (4, 4)]

请注意,zip仅适用于长度相等的列表。

答案 1 :(得分:0)

听起来你想使用itertools.product(list1, list2)。这将创建list1和list2的所有组合。

例如,如果list1 = [1,2]和list2 = [1,2,3]则itertools.products(list1,list2)= [(1,1),(2,1),(3, 1),(2,1),(2,2),(2,3)]