這是一個令人困惑的標題。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