【发布时间】:2013-06-14 16:45:51
【问题描述】:
我有一个相同类型的对象列表
lis = [<obj>, <obj>, <obj>]
我希望按对象属性name 自然排序。我试过了
sortedlist = sorted(lis, key=lambda x: x.name)
但是这会将列表排序为
A1
A10
A2
不是我想要的格式
A1
A2
A10
我已尝试修改 sorting alphanumeric strings 中的代码,但无法使其适用于对象列表。
【问题讨论】:
-
这称为“自然”排序,参见stackoverflow.com/q/11150239/989121 和其中的链接示例。
-
感谢所有的建议,但它们都是为了对一个简单的列表进行排序。不是对象列表。我希望排序的是使用自然排序的对象属性名称的`List = [