Ist die Bestellung der Ergebnisse aus einer Liste Verständnis gewährleistet?
Bei der Verwendung einer Liste Verständnis, ist die Ordnung der neuen Liste in keiner Weise garantiert? Als ein erfundenes Beispiel, ist das folgende Verhalten garantiert durch die definition einer Liste Verständnis:
>> a = [x for x in [1,2,3]]
>> a
[1, 2, 3]
Gleichermaßen, ist die folgende Gleichheit garantiert:
>> lroot = [1, 2, 3]
>> la = [x for x in lroot]
>> lb = []
>> for x in lroot:
lb.append(x)
>> lb == la
True
Speziell, es ist die Reihenfolge, die ich bin daran interessiert, hier.
- Ja, es ist garantiert. Es ist eine Sequenz.
InformationsquelleAutor Dan | 2009-08-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, die Liste Verständnis behält die Reihenfolge der original-durchsuchbar (wenn es eine ist).
Wenn die original-iterierbar ist bestellt (Liste, Tupel, Datei, etc.), das ist der Auftrag, den Sie erhalten im Ergebnis. Wenn Ihr iterierbar ist ungeordnet (set, dict, etc.), es gibt keine Garantien über die Reihenfolge der Elemente.
s
, im folgenden wird immer wahr sein:[x for x in s] == [x for x in s]
.chile_ranks = {'ghost': 1, 'habanero': 2, 'cayenne': 3}
rank_dict = {rank: name for name, rank in chile_ranks.items()}
print({name for name in rank_dict.values()})
print({len(name) for name in rank_dict.values()})
Ja, eine Liste ist eine Sequenz. Reihenfolge ist von Bedeutung.