python按包含列表的长度排序对象列表

时间:2014-08-27 06:11:51

标签: python list sorting object

我有一个包含两个列表的类,一个int和一个字符串......看起来像这样

class Something:
    num = 0

    def __init__(self, clu, pro)
        self.clu = clu
        self.rep = []
        self.rep_dis = []
        self.pro = ""

现在,在我的主要内容中,我保留了Something个对象的列表。

something_list = []
tmp_something = Something("this", "that")
tmp_something.rep.append("some")
tmp_something.rep_dis.append("thing")
something_list.append(tmp_something)

如何按对象列表rep的长度对此列表进行排序?

编辑:代码段格式

1 个答案:

答案 0 :(得分:5)

答案"如何按...排序对象列表?"始终"使用key参数sort"。在这种情况下:

something_list.sort(key=lambda x: len(x.rep))

key参数是为列表中的每个项调用的函数,应该返回您想要排序的值。