Customized sort on list of objects
我有这样的物品清单
1 2 3 4 5 | actors = [Person('Raj' ,'Hindi'), Person('John', 'English'), Person('Michael' 'Marathi'), Person('Terry','Hindi'), Person('Terry', 'Telugu')] |
我想根据母语对这些人进行分类。依次是马拉地语、英语、印地语、泰卢固语。这意味着我希望按自定义逻辑而不是按升序或降序对对象排序。
我使用的是python 3.7。你能帮我一下吗?
你可以的
1 | sorted(actors, key = lambda x: mothertongue_list.index(x.tongue)) |
如果我们有,你可以从
首先创建语言的优先级映射:
1 | priority_map = {v: k for k, v in enumerate(('Marathi', 'English', 'Hindi', 'Telugu'))} |
号
然后将
1 | res = sorted(actors, key=lambda x: priority_map[x.tongue]) |
或者,如果适用,对类的属性进行排序,如本例所示。