Ich glaube ich habe das missverstanden.
Die erste for-Schleife läuft über die keys in abDict. Deswegen wird die Reihenfolge der gefunden Suchstellen durch die Reihenfolge der keys bestimmt. Und die ist eben in einem Dictionary nicht beeinflußbar. Sie wird durch Python intern festgelegt. Sie entspricht nicht unbedingt der Reihenfolge nach der du die keys angelegt hast und auch nicht irgendeiner alphabetischen Reihenfolge.
Somit erhälst du auch verschiedene Ausgaben.
Du könntest aber bevor die Schleife beginnt die keys sortieren und dann über die sortierten keys iterieren.
Beispiel:
Code: Alles auswählen
search = 'Straße'
abDict = { "1": ['Hampelmann','Neue Straße 5','Musterstadt'],
"2": ['Dieter','Alte Straße 7','Musterstadt'],
"3": ['Der Andere','Andere Straße 2','Musterstadt'],
"4": ['Hampelmann 2','Andere Straße 2','Musterstadt'],
}
keys = abDict.keys()
keys.sort()
for entry in keys:
for x in abDict[entry]:
if search in x:
print str(entry)+':'
line = abDict[entry]
try:
print line[1]+' '+line[0]
print line[2]+' '+line[3]
print line[4]+' '+line[5]
except:
pass
for y in range(6,len(line)):
if len(line[y]) > 0: print line[y]
break
Edit (Leonidas): Code in Python-Tags gesetzt.