等效于Django模板中的python“ for in”循环

adm*_*tad 1 django django-templates

我正在尝试迭代Django模板中的列表。在python中,它看起来如下所示,并且可以正常工作:

l=[lots ot touples]
for li in range(len(l)):
    print(l[li])
Run Code Online (Sandbox Code Playgroud)

但是在Django模板中它不起作用。我的问题是:Django模板中的迭代列表最简单的等效方法是什么?

我的Django模板:

<html>
<body>
{% for w in l %}
  <li>{{ w }}</li>
{% endfor %}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

先感谢您

PS我已经添加了touples,以列出确切的问题是另外一个PS

www网站的输出(我正在显示gmail形式的未读电子邮件)如下所示:

('From1', 'subject1', 'Thu, 12 Nov 2015 09:46:34 +0100')
('From2', 'subject2', 'Thu, 12 Nov 2015 13:48:58 +0100')
('From3', 'subject3', 'Thu, 12 Nov 2015 14:12:34 +0100')
Run Code Online (Sandbox Code Playgroud)

我希望列表中的每个项目都分配给touple。我想做的就是分配touple,例如:

touple1 =('From1','subject1','Thu,12 Nov 2015 09:46:34 +0100')

所以我以后可以叫“来自”,“主题”或“日期”

问候

也许我将以另一种方式使其更清楚地显示它:for循环遍历电子邮件(touples列表)

email1 = list[1]     //touple
email2 = list[2]     //touple
Run Code Online (Sandbox Code Playgroud)

(...)

from1 = email1[0]
subject1 = email1[1]
date1 = email1[3]
Run Code Online (Sandbox Code Playgroud)

等等。

解决了。谢谢大家的帮助。每个解决方案对我来说都是有益的。我想标记两个答案(如果可能的话)对我来说非常有用,它显示了解决同一问题的不同方法。我想提一下,每一个帮助对我来说都是非常有用的。您介意我是否将Alasdair和Noah答案标记为正确答案(不知道我可以标记多少个答案)?

Ala*_*air 6

给定以下元组列表:

emails = [
    ('From1', 'subject1', 'Thu, 12 Nov 2015 09:46:34 +0100')
    ('From2', 'subject2', 'Thu, 12 Nov 2015 13:48:58 +0100')
    ('From3', 'subject3', 'Thu, 12 Nov 2015 14:12:34 +0100')
]
Run Code Online (Sandbox Code Playgroud)

您可以遍历元组,并使用.0.2通过索引访问元素:

{% for email in emails %}
{{ email.0 }} - {{ email.1 }} - {{ email.2 }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

或者,您可以解压缩元组变量:

{% for from, subject, date in emails %}
{{ from }} - {{ subject }} - {{ date }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您的Python代码不是很pythonic。而不是在范围内循环,

emails = [...]
for li in range(len(emails)):
print(emails[li])
Run Code Online (Sandbox Code Playgroud)

您可以直接遍历列表

for email in emails:
    print(emails)
Run Code Online (Sandbox Code Playgroud)

您可以执行与Django模板相同的解压缩。

for from, sender, date in emails:
    print(from, sender, date)
Run Code Online (Sandbox Code Playgroud)