程序填空题:力的较量 |
您所在的位置:网站首页 › 函数及应用的程序 › 程序填空题:力的较量 |
如果一个列表的元素均为某一自定义类实例化的对象,对于这样的列表排序,一般可以通过某个函数,对其成员属性值进行运算,结合key关键字进行排序; 也可以通过类定义时,重写特殊方法__lt__进行对象的比较,然后可直接排序。请将下述程序补充完整并上机调试,使其可以生成期望的排序结果。 pythonclass Force: def __init__(self,x,y): self.fx,self.fy = x, y def show(self): return "(%f,%f)"%(self.fx,self.fy) __repr__ = show def __lt__(self,force2): return self.fx*self.fx + self.fy*self.fy < force2.fx*force2.fx \ + force2.fy*force2.fy fList = [Force(1,2), Force(0,2),Force(3,4),Force(2,1)] ff = fList.copy()ff.sort()print(ff) ft = sorted(fList,key =lambda x : )print(ft) 期望的执行结果为: [(0.000000,2.000000), (1.000000,2.000000), (2.000000,1.000000), (3.000000,4.000000)][(0.000000,2.000000), (1.000000,2.000000), (2.000000,1.000000), (3.000000,4.000000)] 【解题提示】* 定义了一个力的类,希望按力的模(大小)进行排序。类定义重写了__lt__方法,也就是小于( |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |