当前位置:  开发笔记 > 编程语言 > 正文

如何对键进行排序:按列表中的值列出字典?

如何解决《如何对键进行排序:按列表中的值列出字典?》经验,为你挑选了1个好方法。

我有一本字典

mydict = {'name':['peter', 'janice', 'andy'], 'age':[10, 30, 15]}

如何根据key =="name"列表对此词典进行排序?

最终结果应该是:

mydict = {'name':['andy', 'janice', 'peter'], 'age':[15, 30, 10]}

或者字典是这种数据的错误方法?



1> bakkal..:

如果您操纵数据,通常有助于每列成为观察变量(名称,年龄),每行都是观察(例如抽样人员).有关此PDF链接中整洁数据的更多信息

糟糕的程序员担心代码.优秀的程序员担心数据结构及其关系--Linus Torvalds

字典列表更适合这样的操作.下面我将介绍一个适合初学者的片段,以整理您的数据.一旦拥有了良好的数据结构,即使对于初学者来说,按任何变量排序也是微不足道的.没有单线Python功夫:)

>>> mydict = {'name':['peter', 'janice', 'andy'], 'age':[10, 30, 15]}

让我们首先研究一个更好的数据结构

>>> persons = []
>>> for i, name in enumerate(mydict['name']):
...     persons.append({'name': name, 'age': mydict['age'][i]})
... 
>>> persons
[{'age': 10, 'name': 'peter'}, {'age': 30, 'name': 'janice'}, {'age': 15, 'name': 'andy'}]

现在,更容易处理这种类似于数据分析环境中的"数据帧"的数据结构.让我们按它排序person.name

>>> persons = sorted(persons, key=lambda person: person['name'])

现在,如果您愿意,请将其恢复为您的格式

>>> {'name': [p['name'] for p in persons], 'age': [p['age'] for p in persons]}
{'age': [15, 30, 10], 'name': ['andy', 'janice', 'peter']}

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有