我在python中使用Jinja2模板用于Google App Engine。我需要在html文件的同一循环中遍历2个列表list1和list2。我尝试使用一些帖子中描述的zip,但它不起作用。
C中的类似内容:for(i=0.j=0; I<len(list1) && j < len(list2) ; I++,j++)
有人可以建议一些实现相同的方法吗?
答案 0 :(得分:0)
如果您有list1
和list2
,则可以使用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)]