ich habe eine Frage zur Reihenfolge in Dictionarys in Python.
Ich habe ein Skript, welches Variablen in einem Text austauscht. Der Text ist in einer Liste gespeichert. Ich habe ein Dictionary angelegt, in den Keys stehen die ursprünglichen Variablen, in den Values die Variablen mit denen die original Variablen ersetzt werden sollen.
Eine funktion prüft nun für jedes Element der Liste, ob ein (oder auch mehrere) Keys in dem Element vorkommen und ersetzt dieses mit dem entsprechenden Wert. Soweit funktioniert das auch alles ganz wunderbar und ich war mächtig stolz.

Bis mir dann folgendes Problem aufgefallen ist:
Die Keys werden nicht in der Reihenfolge gespeichert, wie sie ins Dictionary geschrieben werden. Das ist natürlich blöd, wenn manche Variablen teile anderer Variablen sind.
So habe ich z.B die Varaible "{Vorname} {Name}", welche durch "[NAME]" ersetzt wird und eine Variable "{Name}", welche ebenfalls durch "[NAME]" ersetzt wird. Anscheinend wird nun zuerst nach "{Name}" gesucht und ersetzt.
Nun steht in dem Element "{Vorname} [NAME]", wenn nun also nach "{Vorname} {Name}" gesucht wird, wird logischerweise nichts gefunden.
Da die Suche bei Google ergeben hat, dass die Reihenfolge in einem Dict mehr oder weniger zufällig ist (und sich auch ändern kann), ist die einzige Lösung die mir spontan einfällt, dass ganz über 2 Dictionarys zu machen, erst das eine, dann das andere.
Oder ist es mehr oder weniger einfach, zu prüfen, ob wenn ein Key gefunden wurde, davor (oder dahinter) noch etwas steht, was auch zu anderen Keys gehört?
Hat irgendwer eine Idee wie man so ein Problem löst? Hatte hier in der Forumsuche etwas davon gelesen, das ganze über Tupel zu machen, allerdings weiß ich nicht, ob das bei mir Zielführend ist.
Vielen Dank