Vorbelegung einer Liste mit "Keine"
Angenommen, Sie möchten eine Funktion schreiben, die eine Liste von Objekten liefert, und Sie kennen die Länge im Vorausn
von einer solchen Liste.
In Python unterstützt die Liste den indizierten Zugriff in O (1), daher ist es wahrscheinlich eine gute Idee, die Liste vorab zuzuweisen und mit Indizes darauf zuzugreifen, anstatt eine leere Liste zuzuweisen und die zu verwendenappend()
Methode. Dies liegt daran, dass wir die Last vermeiden, die gesamte Liste zu erweitern, wenn der Platz nicht ausreicht.
Wenn ich Python verwende, sind Performances wahrscheinlich auf keinen Fall so relevant, aber wie kann man eine Liste besser vorbelegen?
Ich kenne diese möglichen Kandidaten:
[None] * n
→ zwei Listen zuordnen[None for x in range(n)]
- oderxrange
in python2 → ein anderes Objekt bauenIst einer deutlich besser als der andere?
Was ist, wenn wir in dem Fall sind?n = len(input)
? Schon seitinput
existiert bereits, würde[None for x in input]
habe bessere leistungen w.r.t.[None] * len(input)
?