Ich habe einige ids wie folgt:Wie kann ich eine Liste von Wörterbüchern basierend auf einer anderen Liste bestellen, die den Schlüssel hat?
req_ids=['964','123','534','645','876','222']
und ich bekomme eine Antwort von einem anderen Server wie diese nicht in einer bestimmten Reihenfolge:
res_result = [{'id':'123', 'name':'Sachin'},
{'id':'534', 'name':'Vipin'},
{'id':'222', 'name':'Ram'},
{'id':'645', 'name':'Anoop'},
{'id':'964', 'name':'Sani'},
{'id':'876', 'name':'John'}]
Ich brauche res_result
in der gleichen Anfrage zu erhalten, um als req_ids,
[{'id':'964', 'name':'Sani'},
{'id':'123', 'name':'Sachin'},
{'id':'534', 'name':'Vipin'},
{'id':'645', 'name':'Anoop'},
{'id':'876', 'name':'John'},
{'id':'222', 'name':'Ram'}]
Wie kann ich tun dies, wenn möglich, eine eingebaute python-Funktion statt schreiben unsere eigene Schleife mit dieser Logik zu tun?
er die Komplexität O (n^2)? – FazalSap
@FazalSap: nein, O (NlogN), einfach gerade Sortierung; Die 'id_to_pos'-Map macht das Durchsuchen des Sortierschlüssels um eine O (1) -Operation pro sortiertem Element. Die Karte wird in O (N) Zeit, * vor * der Sortierung erstellt. Der Gesamtalgorithmus wird also immer noch von der Sortierzeit O (NlogN) dominiert. –
@FazalSap: aber jetzt, wo Sie mich richtig denken ließen, fügte ich stattdessen eine O (N) -Lösung hinzu. Sie müssen nicht sortieren, wenn Sie bereits eine feste Bestellung haben. Sie müssen lediglich eine Karte von der ID zum Wörterbuch erstellen. –