Can you sort by subclass?
本问题已经有最佳答案,请猛点这里访问。
有没有方法通过子类值列出?我希望"by"变量是第一个,并按.number子类对整个列表进行排序。
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Abcd: def __init__(self, name, number): self.name = name self.number = number ax = Abcd("a", 20) by = Abcd("b", 1) lst = [ax, by] print lst[0] list.sort(lst) print lst[0] |
应该这样。我所要做的就是为排序功能添加一个键和一些东西,以使打印效果更好,但这些确实不是必需的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Abcd: def __init__(self, name, number): self.name = name self.number = number def __str__(self): return"{} and {}".format(self.name, self.number) def __repr__(self): return self.__str__() ax = Abcd("a", 20) by = Abcd("b", 1) lst = [ax, by] print str(lst) list.sort(lst, key=lambda x: x.number) print str(lst) |