【发布时间】:2019-12-09 17:27:00
【问题描述】:
我创建了名为 points 的类。其中有 2 个“开始”和“结束”(它基本上代表一个 2D 坐标)。在驱动程序中,我制作了一个对象列表,我接受的值很少,我想根据对象对列表进行排序到 'end' 属性。
这是代码:-
class points:
def __init__(self,a,b):
self.begin=a
self.end=b
t=int(input())
while t:
t-=1
l=[]
index=[]
n=int(input())
for i in range(n):
a,b=input().split()
l.append(points(a,b))
l=sorted(l, key=lambda obj: obj.end)
for i in range(n):
print(l[i].begin,l[i].end)
对于输入:
1
3
5 8
9 12
6 11
这应该是答案:
5 8
6 11
9 12
但它给出了答案:
6 11
9 12
5 8
请帮我解决这个问题。
【问题讨论】:
-
l.append(points(int(a),int(b))) -
您目前正在按字典顺序排序,因为
a和b输入是字符串而不是整数
标签: python class sorting object