【发布时间】:2010-07-16 12:28:51
【问题描述】:
我在 Python 中创建了一个列表:
mylist=os.listdir("/User/Me/Folder")
现在我有一个列表中的文件列表。
我想做的是:
一个接一个的文件名并添加一个 URL:
/myurl/ + mylist 中的每一项
然后我想将结果写在 Django 的 html 模板中。
这样它就会在html列表中显示该文件夹中的所有图像
我怎样才能做到这一点?
谢谢
【问题讨论】:
我在 Python 中创建了一个列表:
mylist=os.listdir("/User/Me/Folder")
现在我有一个列表中的文件列表。
我想做的是:
一个接一个的文件名并添加一个 URL:
/myurl/ + mylist 中的每一项
然后我想将结果写在 Django 的 html 模板中。
这样它就会在html列表中显示该文件夹中的所有图像
我怎样才能做到这一点?
谢谢
【问题讨论】:
使用列表推导,您可以将原始列表“mylist”转换为带有 URL 前缀的列表,如下所示:
urllist = ['/myurl/%s' % the_file for the_file in mylist]
分析:
a) 方括号中的表达式是列表推导式。它说:迭代“mylist”中的每个项目,暂时调用迭代项目“the_file”并使用子表达式对其进行转换:'/myurl/%s'% the_file
b) 转换表达式说,创建一个字符串,其中 %s 被“the_file”的值表示的字符串替换
【讨论】:
{% for filename in listoffilenames %}
/myurl/{{ filename }}
{% endfor %}
【讨论】:
filename。
相比之下,如果您想在视图中执行此操作(即使没有充分的理由这样做):
mylist[:] = [url + x for x in mylist]
如果您不需要修改现有列表,则可以删除[:]。
【讨论】: