我正在使用 Python 列表排序。
我有两个列表:一个是整数列表,另一个是对象列表,第二个对象列表的属性 id 也是一个整数,我想根据 id 属性对对象列表进行排序,在相同id的顺序出现在第一个列表中,好吧,这是一个例子:
我有a = [1,2,3,4,5]
和b = [o,p,q,r,s]
, 其中 o.id = 2, p.id = 1, q.id = 3, r.id = 5, s.id = 4
我希望我的列表 b 按其 id 出现在列表 a 中的顺序排序,如下所示:
sorted_b = [p, o, q, s, r]
当然,我可以通过使用嵌套循环来实现这一点:
sorted_b = []
for i in a:
for j in b:
if j.id == i:
sorted_b.append(j)
break
但这是一种经典的丑陋且非 Python 解决问题的方法,我想知道是否有一种方法可以以一种相当简洁的方式解决这个问题,比如使用 sort 方法,但我不知道如何。