请帮帮我。我有这样的数据集:
my_dict = { 'project_1' : [{'commit_number':'14','name':'john'},
{'commit_number':'10','name':'steve'}],
'project_2' : [{'commit_number':'12','name':'jack'},
{'commit_number':'15','name':'anna'},
{'commit_number':'11','name':'andy'}]
}
我需要根据提交编号按降序对数据集进行排序,并通过使用python忽略项目名称将其放入一个新列表中。预期列表如下:
ordered_list_of_dict = [{'commit_number':'15','name':'anna'},
{'commit_number':'14','name':'john'},
{'commit_number':'12','name':'jack'},
{'commit_number':'11','name':'andy'},
{'commit_number':'10','name':'steve'}]
非常感谢你帮助我。你知道吗
我将提供一个不那么恶作剧和更读者友好的答案。你知道吗
首先,遍历我的字典中的键值对,并将每个值元素添加到一个空列表中。这样您就不必平展列表:
由此得出:
然后按降序排序:
这将基于“commit\u number”进行排序,即使您没有指定它,因为它按字母顺序排在“name”之前。如果您想为了defensive coding而指定它,据我所知,这将是最快和最干净的方法:
my_dict
的值提取为列表列表*dict_values
)形成一个平面列表commit_number
对每个元素排序*python2上的列表。在python3上,返回一个
dict_values
对象。在python2上,使用
dict.itervalues
而不是dict.values
达到相同的效果。你知道吗Coldspeed的答案和往常一样不错,但作为替代,您可以使用以下选项:
打印时,可提供:
请注意,在
list-comprehension
中,您有一个标准构造,用于展平列表列表:[x for sublist in big_list for x in sublist]
相关问题 更多 >
编程相关推荐