¿Cómo adjuntar múltiples diccionarios a una lista desde un bucle en Python?
¿Cómo se pueden agregar diccionarios que cada ciclo genera a una lista para que al final mi función devuelva una lista de n-diccionarios? Sin bibliotecas sofisticadas, solo Python simple.
def inner_loop(*args):
for X, y in zip(X, y):
a_dict = {'t':None, 'p':None}
t_range = range(1, 10)
p_range = range('high','low')
best_acc = 0
list_of_dicts = []
#mejor selección de cuadrícula
for t in t_range:
for p in p_range:
model(X, temp=t, press=p)
predict = model.predicting(y)
acc = (np.sum(predict == y))/len(y)
if acc > best_acc:
best_acc = acc
a_dict['t']= t
elif p == 'high':
a_dict['p']='high'
elif p == 'low':
a_dict['p']='low'
list_of_dicts.append(a_dict)
return list_of_dicts
La función devuelve instancias de diccionarios, pero nunca una lista de todos los diccionarios que se generaron. ¿Alguien puede ayudar con esto?
davy.ai
Para agregar diccionarios generados por cada bucle a una lista y devolver una lista de n-diccionarios, es necesario declarar
list_of_dicts
fuera de los bucles y luego agregara_dict
al final de cada iteración del bucle interior.Así es como se puede modificar el código para lograr esto:
Aquí,
list_of_dicts
se inicializa fuera de ambos bucles, ya_dict
se agrega a él una vez que el bucle interior ha completado sus iteraciones. La declaraciónreturn
también se mueve fuera de ambos bucles para devolver una lista de todos los diccionarios.Nota: También he modificado los nombres de variables dentro de la función ya que algunos de ellos no estaban definidos. Puede que necesite modificarlos según su caso de uso.