我正在使用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方法,但我不知道怎么做。