这是一个令人困惑的标题。Python如何根据另一个列表根据它们的属性对对象列表进行排序
可以说我有标识
ids = [3, 1, 2, 4]
的列表,我检索一气呵成的对象,例如在Django:
records = Record.objects.filter(id__in=ids)
如何保持记录的顺序根据到另一个列表,雅致,最好使用内置的排序功能?
我现在能想到的唯一的办法就是以最小的循环传统的代码,隐蔽记录先字典,然后依次通过的ID直接接在字典中的记录,见下图:
result = []
dict_of_records = {r.id: r for r in records}
for id in ids:
result.append(dict_of_records[id])
你是什么意思“建设排序“?谷歌显示没有相关的命中。 – user2357112
是一个错字.....内置。 –
可能是一种内置的方式。无论如何,一个简单的算法解决方案 - 你可以创建一个哈希表 - 键是id,值是记录。然后,只需遍历排序的键列表 – SomethingSomething