给出了Point
类对象的列表。
Point
类如下:
class Point:
def __init__(self, value, segment, is_start=False):
self.value = value
self.is_start = is_start
目标是按value
属性对列表进行排序,前提是如果两个对象具有相同的value
属性,则is_start
值为True的对象应该位于其{ is_start
的值为False。
输入示例:
[Point(3, False), Point(3, True), Point(1, True),]
我尝试使用array.sort(key=lambda x: x.value)
,输出为:
[Point(1, True), Point(3, False), Point(3, True),]
但是它不满足之前说明的条件(Point(3, True)
应该在Point(3, False)
之前)。
所需输出的示例:
[Point(1, True), Point(3, True), Point(3, False),]
使用什么功能满足规定条件?
答案 0 :(得分:1)
尝试一下。
sorted(x, key=lambda x: (x.value, not x.is_start))