程序填空题:力的较量

您所在的位置:网站首页 函数及应用的程序 程序填空题:力的较量

程序填空题:力的较量

2024-07-14 21:22| 来源: 网络整理| 查看: 265

如果一个列表的元素均为某一自定义类实例化的对象,对于这样的列表排序,一般可以通过某个函数,对其成员属性值进行运算,结合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