我有一个 Python 对象列表,我想按每个对象的特定属性对其进行排序:
>>> ut
[Tag(name="toe", count=10), Tag(name="leg", count=2), ...]
如何按 .count
降序排列列表?
原文由 Nick Sergeant 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 Python 对象列表,我想按每个对象的特定属性对其进行排序:
>>> ut
[Tag(name="toe", count=10), Tag(name="leg", count=2), ...]
如何按 .count
降序排列列表?
原文由 Nick Sergeant 发布,翻译遵循 CC BY-SA 4.0 许可协议
最快的方法是使用 operator.attrgetter("count")
,尤其是当您的列表有很多记录时。但是,这可能会在 Python 的预运算符版本上运行,因此最好有一个回退机制。那么您可能想要执行以下操作:
try: import operator
except ImportError: keyfun= lambda x: x.count # use a lambda if no operator module
else: keyfun= operator.attrgetter("count") # use operator since it's faster than lambda
ut.sort(key=keyfun, reverse=True) # sort in-place
原文由 tzot 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答857 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
有关 按键排序的 更多信息。