按日期排序Python对象列表
我有一个叫做results的Python列表。这个列表里的每个结果都有一个人对象,而每个人对象都有一个出生日期(result.person.birthdate)。这个出生日期是一个日期时间对象。
我想按出生日期来排序这个列表,最老的排在最前面。用Python最合适的方法怎么做呢?
2 个回答
16
我完全同意Amber的看法,但还有另一种按属性排序的方法(来自维基百科:https://wiki.python.org/moin/HowTo/Sorting):
from operator import attrgetter
sorted_list = sorted(results, key=attrgetter('person.birthdate'))
这种方法实际上可能比用lambda
排序还要快。
81
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如说,当你在写代码时,可能会发现某个功能没有按照你的预期工作。这种情况可能是因为你没有正确使用这个工具,或者是因为它本身有一些限制。
有些时候,解决这些问题的方法就是查看文档,看看有没有人遇到过类似的情况,或者在网上搜索一下,看看有没有解决方案。StackOverflow就是一个很好的地方,很多程序员会在这里分享他们遇到的问题和解决办法。
如果你在使用某个特定的库或框架时遇到麻烦,记得先查阅相关的文档,了解它的用法和注意事项。这样可以帮助你更好地理解这个工具,避免一些常见的错误。
总之,编程过程中遇到问题是很正常的,关键是要保持耐心,积极寻找解决方案。
results.sort(key=lambda r: r.person.birthdate)