📅  最后修改于: 2023-12-03 15:12:27.043000             🧑  作者: Mango
在Django中,有时候我们需要遍历多个列表,可以使用zip()函数来实现。zip()函数可以将多个列表打包成一个元组序列,然后返回这个序列。
zip()函数的基本用法如下:
list1 = ['a','b','c']
list2 = [1,2,3]
zip_list = zip(list1, list2)
print(zip_list)
输出结果为:
[('a', 1), ('b', 2), ('c', 3)]
可以看到,zip()函数将list1和list2打包成了一个元组序列。
在Django中,我们常常需要遍历多个列表,例如在模板中渲染多个对象列表。使用zip()函数可以很方便地实现。
假设我们有两个对象列表:
books = [
{'name':'book1', 'price':10},
{'name':'book2', 'price':20},
{'name':'book3', 'price':30},
]
authors = [
{'name':'author1', 'age':30},
{'name':'author2', 'age':40},
{'name':'author3', 'age':50},
]
现在我们想在模板中将它们遍历出来,可以使用zip()函数:
zip_list = zip(books, authors)
然后在模板中使用for循环遍历:
{% for book, author in zip_list %}
<li>{{ book.name }} - {{ book.price }} - {{ author.name }} - {{ author.age }}</li>
{% endfor %}
在Django中,使用zip()函数可以很方便地遍历多个列表。需要注意zip()函数返回的是一个生成器对象,在模板中需要将其转换为一个列表或其他序列再使用。