【问题标题】:Iterate through 2 loops in GAE Python templates遍历 GAE Python 模板中的 2 个循环
【发布时间】:2013-11-29 17:53:48
【问题描述】:

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

谁能提出一些实现相同的方法?

【问题讨论】:

  • 列表是什么样的以及它们之间的关系。另外,你能展示一下你的 jinja 模板是什么样子的吗?

标签: python list google-app-engine jinja2


【解决方案1】:

如果您有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 仅适用于长度相等的列表。

【讨论】:

    【解决方案2】:

    听起来您想使用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)]

    【讨论】:

      猜你喜欢
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多