我有一个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()
可以避免更改原始列表,这就是您的“希望看到的”代码在可行时会执行的操作。