我有一个CrewRecords对象列表。
crew_record = list[<CrewRecords instance at 0x617bb48>,
<CrewRecords instance at 0x617b9e0>,
<CrewRecords instance at 0x5755680>]
其中:
class CrewRecords():
def __init__(self):
self.crew_id = None
self.crew_date_of_hire = None
self.crew_points = None
def crew_attributes(self,crew_bag):
''' populate the values of crew with some values'''
self.crew_id = crew_bag.crew.id()
self.crew_date_of_hire = crew_bag.crew.date_of_hire()
self.crew_points = crew_bag.crew_points()
现在,我想在python中编写一个函数,它接受3个参数并按提供的首选项对列表进行排序。即。
如果用户输入要排序的值 选项:
然后,函数应该能够使用sort.i.e进行排序。 如果选择第一个选项,则按点对所有工作人员进行排序,如果2个工作人员具有相同的点数,则按date_of_hire排序,如果date_of_hire也相同,则按ID排序。
此外,稍后如果排序选项增加,就像用户想要通过一些额外选项(例如按名称)排序一样,我们也应该能够轻松扩展排序标准。
答案 0 :(得分:1)
使用key
关键字sorted
,即
return sorted(crew_record, key=attrgetter('crew_points', 'crew_date_of_hire', 'crew_id'))
会解决你的第一点。