Primero, soy nuevo en Python, entonces me disculpo si he pasado por alto algo, pero me gustaría usar dict.fromkeys
(o algo similar) para crear un diccionario de listas, cuyas claves se proporcionan en otra lista. Estoy realizando algunas pruebas de tiempo y me gustaría que la clave sea la variable de entrada y que la lista incluya los tiempos de las carreras:¿Cómo creo un valor único para cada clave usando 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))
El problema que estoy teniendo es que todas las llaves el diccionario parece compartir la misma lista, y cada ejecución simplemente se agrega a ella. ¿Hay alguna manera de generar una lista vacía única para cada clave usando fromkeys
? Si no, ¿hay otra forma de hacer esto sin generar el diccionario resultante a mano?
¡Impresionante, eso funciona muy bien! ¡Gracias! (aunque desearía que fuera posible generar las listas vacías antes de que tuviera que usarlas) –
No es posible. Una vez que llama a [] o list(), se crea un objeto y se enlaza a la variable. Vea por ejemplo esto x = [[]] * 10; x [0] .append ('test'); imprimir x – vartec
Ok, ahí tienes una alternativa con toda la lista instanciada. – vartec