我有一本字典,就像这样
available= [(u'Small w/b',
{
'20/08': {'total': 18, 'availability': 10, 'full': False},
'19/08': {'total': 18, 'availability': 5, 'full': False},
'23/08': {'total': 18, 'availability': 9, 'full': False},
'22/08': {'total': 18, 'availability': 11, 'full': False},
'21/08': {'total': 18, 'availability': 16, 'full': False}
}),
('dates', ['19/08', '20/08', '21/08', '22/08', '23/08']),
(u'Medium',
{
'20/08': {'total': 32, 'availability': 29, 'full': False},
'19/08': {'total': 32, 'availability': 32, 'full': False},
'23/08': {'total': 32, 'availability': 31, 'full': False},
'22/08': {'total': 32, 'availability': 30, 'full': False},
'21/08': {'total': 32, 'availability': 29, 'full': False}
}),
(u'Matrimonial',
{
'20/08': {'total': 3, 'availability': 3, 'full': False},
'19/08': {'total': 3, 'availability': 2, 'full': False},
'23/08': {'total': 3, 'availability': 3, 'full': False},
'22/08': {'total': 3, 'availability': 2, 'full': False},
'21/08': {'total': 3, 'availability': 3, 'full': False}
}),
(u'Large',
{
'20/08': {'total': 30, 'availability': 26, 'full': False},
'19/08': {'total': 30, 'availability': 21, 'full': False},
'23/08': {'total': 30, 'availability': 25, 'full': False},
'22/08': {'total': 30, 'availability': 25, 'full': False},
'21/08': {'total': 30, 'availability': 25, 'full': False}
}),
(u'Backpacker',
{
'20/08': {'total': 12, 'availability': 4, 'full': False},
'19/08': {'total': 12, 'availability': 6, 'full': False},
'23/08': {'total': 12, 'availability': 11, 'full': False},
'22/08': {'total': 12, 'availability': 6, 'full': False},
'21/08': {'total': 12, 'availability': 7, 'full': False}
})]
available= [(u'Small w/b',
{
'20/08': {'total': 18, 'availability': 10, 'full': False},
'19/08': {'total': 18, 'availability': 5, 'full': False},
'23/08': {'total': 18, 'availability': 9, 'full': False},
'22/08': {'total': 18, 'availability': 11, 'full': False},
'21/08': {'total': 18, 'availability': 16, 'full': False}
}),
('dates', ['19/08', '20/08', '21/08', '22/08', '23/08']),
(u'Medium',
{
'20/08': {'total': 32, 'availability': 29, 'full': False},
'19/08': {'total': 32, 'availability': 32, 'full': False},
'23/08': {'total': 32, 'availability': 31, 'full': False},
'22/08': {'total': 32, 'availability': 30, 'full': False},
'21/08': {'total': 32, 'availability': 29, 'full': False}
}),
(u'Matrimonial',
{
'20/08': {'total': 3, 'availability': 3, 'full': False},
'19/08': {'total': 3, 'availability': 2, 'full': False},
'23/08': {'total': 3, 'availability': 3, 'full': False},
'22/08': {'total': 3, 'availability': 2, 'full': False},
'21/08': {'total': 3, 'availability': 3, 'full': False}
}),
(u'Large',
{
'20/08': {'total': 30, 'availability': 26, 'full': False},
'19/08': {'total': 30, 'availability': 21, 'full': False},
'23/08': {'total': 30, 'availability': 25, 'full': False},
'22/08': {'total': 30, 'availability': 25, 'full': False},
'21/08': {'total': 30, 'availability': 25, 'full': False}
}),
(u'Backpacker',
{
'20/08': {'total': 12, 'availability': 4, 'full': False},
'19/08': {'total': 12, 'availability': 6, 'full': False},
'23/08': {'total': 12, 'availability': 11, 'full': False},
'22/08': {'total': 12, 'availability': 6, 'full': False},
'21/08': {'total': 12, 'availability': 7, 'full': False}
})]
现在看起来像这样。我想迭代两个词典并将每个项目中的日期排序到正确的顺序。我该怎么办?
答案 0 :(得分:0)
不幸的是,您无法订购字典的键,因为dicts
是无序的
但是,您可以使用items()
将键值对转换为元组列表,然后使用sorted
对列表进行排序:
for elem in available:
if elem[0] != 'dates':
print sorted(elem[1].items())
将打印出来:
[('19/08', {'total': 18, 'availability': 5, 'full': False}), ('20/08', {'total': 18, 'availability': 10, 'full': False}), ('21/08', {'total': 18, 'availability': 16, 'full': False}), ('22/08', {'total': 18, 'availability': 11, 'full': False}), ('23/08', {'total': 18, 'availability': 9, 'full': False})]
[('19/08', {'total': 32, 'availability': 32, 'full': False}), ('20/08', {'total': 32, 'availability': 29, 'full': False}), ('21/08', {'total': 32, 'availability': 29, 'full': False}), ('22/08', {'total': 32, 'availability': 30, 'full': False}), ('23/08', {'total': 32, 'availability': 31, 'full': False})]
[('19/08', {'total': 3, 'availability': 2, 'full': False}), ('20/08', {'total': 3, 'availability': 3, 'full': False}), ('21/08', {'total': 3, 'availability': 3, 'full': False}), ('22/08', {'total': 3, 'availability': 2, 'full': False}), ('23/08', {'total': 3, 'availability': 3, 'full': False})]
[('19/08', {'total': 30, 'availability': 21, 'full': False}), ('20/08', {'total': 30, 'availability': 26, 'full': False}), ('21/08', {'total': 30, 'availability': 25, 'full': False}), ('22/08', {'total': 30, 'availability': 25, 'full': False}), ('23/08', {'total': 30, 'availability': 25, 'full': False})]
[('19/08', {'total': 12, 'availability': 6, 'full': False}), ('20/08', {'total': 12, 'availability': 4, 'full': False}), ('21/08', {'total': 12, 'availability': 7, 'full': False}), ('22/08', {'total': 12, 'availability': 6, 'full': False}), ('23/08', {'total': 12, 'availability': 11, 'full': False})]