在Python中对对象列表进行排序
在Python中对对象列表进行排序
这个问题已经有了答案:
在Python中,我正在将一个xml
文件解析成字典,使用这个模块。我的核心代码非常简单:
configdict = ConvertXmlToDict('tasks.xml') for task in configdict['osmo_tasks']['tasks_entries']['entry']: print task['id'], task['due_date'], task['summary']
上面的代码将把xml
文件解析成字典,然后迭代tasks
并将它们打印出来。显然,它将按照它们从xml
文件中读取的顺序进行打印:
1 736366 summary 2 735444 another summary 5 735796 blah
如何根据task[\'due_date\']
的值进行排序并打印这些行?
这是一个示例xml
文件:
1 1 736366 53100summary
2 1 735444 55800another summary
5 0 735796 55800blah
admin 更改状态以发布 2023年5月23日
尝试使用内置函数 sorted
: https://docs.python.org/2/library/functions.html#sorted
sorted
可以接受任何可迭代对象和用于排序的键。这里有一个类似于你的例子的示例:
sorted_test.py
configdict = { 'tasks': { 'entries': [ { 'id': 1, 'date': 736366 }, { 'id': 2, 'date': 735444 }, { 'id': 3, 'date': 735796 } ] } } tasks = sorted([ t for t in configdict['tasks']['entries'] ], key=lambda task: task['date']) print repr(tasks)
结果:
[{'date': 735444, 'id': 2}, {'date': 735796, 'id': 3}, {'date': 736366, 'id': 1}]