【问题标题】:Python Lists BeginnerPython 列表初学者
【发布时间】:2010-07-16 12:28:51
【问题描述】:

我在 Python 中创建了一个列表:

mylist=os.listdir("/User/Me/Folder")

现在我有一个列表中的文件列表。

我想做的是:

一个接一个的文件名并添加一个 URL:

/myurl/ + mylist 中的每一项

然后我想将结果写在 Django 的 html 模板中。

这样它就会在html列表中显示该文件夹中的所有图像

我怎样才能做到这一点?

谢谢

【问题讨论】:

    标签: python django list


    【解决方案1】:

    使用列表推导,您可以将原始列表“mylist”转换为带有 URL 前缀的列表,如下所示:

    urllist = ['/myurl/%s' % the_file for the_file in mylist]
    

    分析:

    a) 方括号中的表达式是列表推导式。它说:迭代“mylist”中的每个项目,暂时调用迭代项目“the_file”并使用子表达式对其进行转换:'/myurl/%s'% the_file

    b) 转换表达式说,创建一个字符串,其中 %s 被“the_file”的值表示的字符串替换

    【讨论】:

    • 酷感谢一百万的解释。并且 the_file 必须称为 the_file 或者可以称为任何名称或与 mylist 有关?
    • @MacPython 可以任意调用,但必须一致:例如` '/myurl/%s' % a_shoe for a_shoe in mylist`
    • 我离得很近,我都能闻到。在 {% for url in urllist %} 我写了

      但现在它将列表写入变量中。但我想一个接一个地写一个文件,作为图像列表。我怎样才能做到这一点非常感谢!!
    • 我在他写给我的列表中还有另一个问题:['/site_media/Gallery/Image,...] 所以对于他添加的每个链接 '。知道为什么会这样吗?
    • 是的!路易波士你刚刚做了我的一周。我现在明白了伊格纳西奥的意思。对于将来会出错的每个人:在模板中写: {% for url in urllist %} {{ url }} !!!!!!而不是 {{ urllist }} 非常感谢。你无法理解这对我有多大帮助。如此简单。
    【解决方案2】:
    {% for filename in listoffilenames %}
      /myurl/{{ filename }}
    {% endfor %}
    

    【讨论】:

    • 感谢您的回答,但这对我不起作用。我在 html 中写道: /myurl/[item1,...., item20] 。 . /myurl/[item1,...., item20] 我猜列表中有项目的次数。我做错了什么?
    • 您将列表而不是迭代器变量放在循环中。
    • 抱歉,迭代器变量是什么?
    • 在我给出的例子中是filename
    • 我现在有点困惑。在views.py中我有: def mydef(request): allimg= os.listdir("/Users/Me/Folder") allimg[:] = ["/site_media/Gallery/"+ x for x in allimg] return render_to_response('mytemplate.html', {'allimg': allimg}) 在我的模板中: {% for i in allimg %} /site_media/Gallery/{{ allimg }} {% endfor %} 我得到的和以前一样但现在 /site_media/Gallery/[item 1-item n]
    【解决方案3】:

    相比之下,如果您想在视图中执行此操作(即使没有充分的理由这样做):

    mylist[:] = [url + x for x in mylist]
    

    如果您不需要修改现有列表,则可以删除[:]

    【讨论】:

    • 我不知道 x[:] = y 成语。谢谢! (不过可能会让初学者感到困惑)
    猜你喜欢
    • 2014-09-09
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    相关资源
    最近更新 更多