我有一本字典
mydict = {'name':['peter', 'janice', 'andy'], 'age':[10, 30, 15]}
如何根据key ==“ name”列表对字典进行排序?
最终结果应为:
mydict = {'name':['andy', 'janice', 'peter'], 'age':[15, 30, 10]}
还是字典对此类数据使用错误的方法?
如果您处理数据,通常有助于将每一列用作观察变量(名称,年龄),而将每一行用作观察变量(例如,抽样人员)。更多关于整洁数据在此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']}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句