我有一本字典,里面有国家和办事处,我需要按它们分类 国家然后按办公地点。通过这样做,我设法将它们按国家分类
sorted_list = [[id, desc] for id, desc in sorted(locations.items(), key=lambda item: (item[1]['name']))
然而,当我尝试执行项[1]['cities']['names']时,它不起作用,因为显然索引不是整数。你知道吗
(TypeError: list indices must be integers or slices, not str )
我要做的是先按国家排序,再按城市排序
预期产量:
奥地利->;Gramatneusiedl/维也纳,内政部,Lenzing,Schoerfling,Weissenstein
比利时->;安特卫普,布鲁塞尔,内政部,奥斯滕德
初始输入:
locations = '2248': {
'name': 'Austria',
'cities': [{
'OptionId': 2289,
'name': 'Gramatneusiedl / Vienna'
}, {
'OptionId': 2290,
'name': 'Lenzing'
}, {
'OptionId': 2291,
'name': 'Schoerfling'
}, {
'OptionId': 2292,
'name': 'Weissenstein'
}, {
'OptionId': 2293,
'name': 'Home Office'
}]
},
'2249': {
'name': 'Belgium',
'cities': [{
'OptionId': 9367,
'name': 'Oostende'
}, {
'OptionId': 2294,
'name': 'Antwerp'
}, {
'OptionId': 2295,
'name': 'Brussels'
}, {
'OptionId': 2296,
'name': 'Home Office'
}]
你可以试试这个:
输出:
编辑:Python字典本来就是未排序的,但是,您可以使用
collections.OrderedDict
来补偿:输出:
Python中的字典键不保证顺序。你可以看到这篇关于更多细节的文章:Python dictionary, how to keep keys/values in same order as declared?。有很多方法可以做到这一点,根据您使用的Python版本的不同,可能会有所不同。你知道吗
如果您只想按顺序打印项目,有一种简单的方法可以使用
json
库来管理它。你知道吗这将打印以下结果:
如果要保持字典中的顺序,请使用OrderedDict对象。有序图片记住插入顺序。因此,在创建最终字典之前,我们可以根据name键的值对所有项进行排序。你知道吗
相关问题 更多 >
编程相关推荐