我有一个字典列表,它们本身有嵌套的字典列表。谢天谢地,所有的巢层都有相似的结构。我想对这些嵌套的词典列表进行排序。我掌握了按值对词典列表排序的技巧。我正在努力使用递归来对内部列表进行排序。你知道吗
def reorder(l, sort_by):
# I have been trying to add a recursion here
# so that the function calls itself for each
# nested group of "children". So far, fail
return sorted(l, key=lambda k: k[sort_by])
l = [
{ 'name': 'steve',
'children': [
{ 'name': 'sam',
'children': [
{'name': 'sally'},
{'name': 'sabrina'}
]
},
{'name': 'sydney'},
{'name': 'sal'}
]
},
{ 'name': 'fred',
'children': [
{'name': 'fritz'},
{'name': 'frank'}
]
}
]
print(reorder(l, 'name'))
由于您声明“我掌握了按值对字典列表排序的技术”我将发布一些代码,用于递归地从我发布的另一篇文章中收集数据,并将其留给您来实现排序技术。代码:
用于从json文件中递归检索所有键。它输出:
主要要注意的是
if isinstance(value, dict):
导致get_keys()
再次被调用,因此它具有递归功能(但在本例中仅适用于嵌套字典)。你知道吗相关问题 更多 >
编程相关推荐