Zuerst bin ich neu bei Python, also entschuldige ich mich, wenn ich etwas übersehen habe, aber ich möchte dict.fromkeys
(oder etwas Ähnliches) verwenden, um ein Wörterbuch mit Listen zu erstellen, deren Schlüssel in einer anderen Liste enthalten sind. Ich habe einige Timing-Tests durchführen, und ich möchte für den Schlüssel die Eingangsgröße und die Liste sein, die Zeiten für die Läufe enthalten:Wie erstelle ich einen eindeutigen Wert für jeden Schlüssel mit dict.fromkeys?
def benchmark(input):
...
return time_taken
runs = 10
inputs = (1, 2, 3, 5, 8, 13, 21, 34, 55)
results = dict.fromkeys(inputs, [])
for run in range(0, runs):
for i in inputs:
results[i].append(benchmark(i))
Das Problem, das ich habe, ist, dass alle Schlüssel in Das Wörterbuch scheint dieselbe Liste zu haben, und jeder Lauf hängt einfach daran. Gibt es eine Möglichkeit, eine eindeutige leere Liste für jeden Schlüssel mit fromkeys
zu generieren? Wenn nicht, gibt es einen anderen Weg, dies zu tun, ohne das resultierende Wörterbuch von Hand zu erzeugen?
Ehrfürchtig, das funktioniert gut! Vielen Dank! (obwohl ich wünschte, es wäre möglich, die leeren Listen zu generieren, bevor ich sie verwenden musste) –
Es ist nicht möglich. Sobald Sie [] oder list() aufrufen, wird ein Objekt erstellt und die Variable gebunden. Schau dir das mal an x = [[]] * 10; x [0] .app (Test); print x – vartec
Ok, da gibt es Alternativen mit allen instanziierten Listen. – vartec