我有一个Version类,其中包含一个version_number字符串,并且可以获得这些字符串的排序列表,如下所示:

sorted_versions = [v.version_number for v in self.version_set]
sorted_versions.sort(key=LooseVersion)


这很棒!

sorted_versions: [u'1.6.3', u'1.7.0']

但是,我想维护一个实际的Version对象的排序列表,而不仅仅是它们的version_number属性,但是我不确定如何做到这一点。

在我的头上,我想看到这样的东西:

sorted_versions = self.version_set
sorted_versions.sort(key=LooseVersion, property=version_number)


导致:

sorted_versions: [<Version: 1.6.3>, <Version: 1.7.0>]

最佳答案

怎么样:

sorted(self.version_set, key=lambda v:LooseVersion(v.version_number))


在此处使用sorted()可以避免更改原始列表,这就是您的“希望看到的”代码在可行时会执行的操作。

08-24 16:16