如何同时打印两个列表?

无礼的

这是我在 Django 中的 views.py 文件

def twitter_trend(request):
    tweets, urls = main()
    context = {
        "tweets": tweets,
        "urls": urls,
    }
    print(context)
    return render(request, "feed/trends.html", context)

在我的模板中,我想同时打印趋势和网址的值。

这是我的模板文件

{% extends 'feed/base.html' %}
{% block content %}
<div class="row">
    <div class="col-md-3"></div>
    <div class="col-md-6">

    <div class="thumbnail-center">
                 <font size="4">
                     <p>Trending Tweets</p>
                 </font>
             </div>
        {% for t,u in tweets,urls %}
        {{ t }}{{ u }}<br>
        {% endfor %}

    </div>
    <div class="col-md-3"></div>
</div>
 {% endblock %}

但是当我运行服务器时,出现以下错误:

Exception Type:	TemplateSyntaxError
Exception Value:	
Could not parse the remainder: ',urls' from 'tweets,urls'

请帮助我如何迭代抛出两个列表?

威廉·范·翁塞姆

您可以zip在视图中使用 a来创建一个同时迭代列表的迭代器:

def twitter_trend(request):
    tweets, urls = main()
    context = {
        'tweets_urls': zip(tweets, urls),
    }
    print(context)
    return render(request, "feed/trends.html", context)

然后在模板中,我们可以迭代tweets_url

{% extends 'feed/base.html' %}
{% block content %}
<div class="row">
    <div class="col-md-3"></div>
    <div class="col-md-6">

    <div class="thumbnail-center">
                 <font size="4">
                     <p>Trending Tweets</p>
                 </font>
             </div>
        {% for t, u in tweets_urls %}
        {{ t }}{{ u }}<br>
        {% endfor %}

    </div>
    <div class="col-md-3"></div>
</div>
 {% endblock %}

zip 接受两个或更多流,并生成这些流的元组。例如:

>>> list(zip([1, 4, 2, 5], "ABCD"))
[(1, 'A'), (4, 'B'), (2, 'C'), (5, 'D')]

因此,我们创建元组,其中左边的项目是一个tweets元素,右边的项目是一个urls元素。

请注意,您必须确保秩序tweetsurls比赛”:那tweets元素‘与’给urls元素。zip(..)只是采用两个可迭代对象的顺序,它没有任何“魔法”来检查链接元素是否有意义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章