对属性' a'上的对象列表进行排序,生成一个' c'属性

时间:2017-06-26 12:13:51

标签: python sorting

class A:
     def __init__():
         self.a = 0
         self.b = 0
         self.c = 0

l = [object1 of A, object2 of A, object3 of A]

l = sorted(l, key=somefunc)

该列表包含每个实例的a,b,c的单独值。我将使用一个使用属性a的自定义函数进行排序,但我希望它返回一个仅包含属性c的值的新列表(当然按排序顺序)。

2 个答案:

答案 0 :(得分:0)

首先提取值,然后排序。

objects_to_sort = [x.c for x in l]
objects_to_sort.sort()

请注意,由于您的列表现在只包含属性,因此不需要键功能。

答案 1 :(得分:0)

您必须采取两个步骤,先排序,然后提取您选择的属性:

[o.c for o in sorted(l, key=somefunc)]