假设您使用的是 Python,这是您可以尝试的一件事。请注意,这从您的变量设置略有不同开始booking_times
,但希望这个概念是有意义的。一般的想法是,我们首先创建一个排序顺序,我们将使用它来对我们的值进行排序。然后,我们使用zip
创建一个新的列表列表,该列表将以天开始,然后是每个后续列表中的小时。
booking_times = {
'Today': ['9:00', '12:00', '14:00', '15:00', '19:00', '20:00'],
'Tue': ['9:00', '12:00', '14:00', '15:00', '19:00', '20:00'],
'Wed': ['9:00', '12:00', '14:00', '15:00', '19:00', '20:00']
}
# Create a new booking_times variable that is a list-of-list,
# leading with the 'days' and followed by one list for each time
sorted_keys = ['Today', 'Tue', 'Wed']
booking_times = [sorted_keys] + zip(*(booking_times[s] for s in sorted_keys))
这是booking_times
使用简单的迭代时此时的样子for row in booking_times: print row
:
['Today', 'Tue', 'Wed']
('9:00', '9:00', '9:00')
('12:00', '12:00', '12:00')
('14:00', '14:00', '14:00')
('15:00', '15:00', '15:00')
('19:00', '19:00', '19:00')
('20:00', '20:00', '20:00')
然后,您可以将该值传递到您的模板中,并以与上面基本相同的方式对其进行迭代:
{% for day in booking_times %}
<tr>
{% for item in day %}
<td>{{ item }}</td>
{% endfor %}
</tr>
{% endfor %}
我现在无法测试模板,但是当修改为使用简单的打印语句时,它会输出以下内容:
Today Tue Wed
9:00 9:00 9:00
12:00 12:00 12:00
14:00 14:00 14:00
15:00 15:00 15:00
19:00 19:00 19:00
20:00 20:00 20:00
这可能与您当前的设置有一点偏差,因此很乐意在必要时进行调整。