Pythonを使用していると仮定すると、ここで試すことができることが1つあります。これは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
これは現在の設定から少し外れる可能性があるため、必要に応じて調整してください。