在Python中按子值对dict进行排序 [英] Sort dict by sub-value in Python

查看:44
本文介绍了在Python中按子值对dict进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我花了一些时间阅读 SOF 并且在解决这个问题时遇到了问题.我似乎无法找到如何按子值排序以下数据结构:

data = {}数据[1] = {名称:鲍勃",...}数据[2] = {名称:卡尔",...}数据[3] = {nane:爱丽丝",...}

我需要将这些数据转换成某种形式的按字母顺序排列的列表/元组/顺序字典结构,以便最终结果是这样的:

finalData = [{name: "Alice", ...}, {name: "Bob", ...}, {name: "Carl", ...}]

谢谢.

解决方案

你的意思是这样的

sorted(data.values(), key=itemgetter(name))

<小时><预><代码>>>>from 操作符导入 itemgetter>>>数据 = {}>>>姓名 = '姓名'>>>>>>数据[1] = {名称:鲍勃"}>>>数据[2] = {名称:卡尔"}>>>数据[3] = {名称:爱丽丝"}>>>>>>排序(数据.值(),键=itemgetter(名称))[{'name': 'Alice'}, {'name': 'Bob'}, {'name': 'Carl'}]

I spent some time reading on SOF and am having issues solving this problem. I cannot seem to find how to get the following data structure sorted by the sub-value:

data = {}
data[1] = {name: "Bob", ...}
data[2] = {name: "Carl", ...}
data[3] = {nane: "Alice", ...}

I need to get this data into some form of a list/tuple/order dict structure which is alphabetized so that the final result is something like this:

finalData = [{name: "Alice", ...}, {name: "Bob", ...}, {name: "Carl", ...}]

Thanks.

解决方案

Do you mean something like

sorted(data.values(), key=itemgetter(name))


>>> from operator import itemgetter
>>> data = {}
>>> name = 'name'
>>> 
>>> data[1] = {name: "Bob"}
>>> data[2] = {name: "Carl"}
>>> data[3] = {name: "Alice"}
>>>
>>> sorted(data.values(), key=itemgetter(name))
[{'name': 'Alice'}, {'name': 'Bob'}, {'name': 'Carl'}]

这篇关于在Python中按子值对dict进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆