Estoy tratando de mantener un diccionario de archivos abiertos para dividir datos en archivos individuales. Cuando solicito un archivo del diccionario, me gustaría que se abriera si la clave no está allí. Sin embargo, no parece que pueda usar un lambda por defecto.¿es posible usar un lambda como valor predeterminado del diccionario?
p. Ej.
files = {}
for row in data:
f = files.get(row.field1, lambda: open(row.field1, 'w'))
f.write('stuff...')
Esto no funciona porque f está configurado para la función, en lugar de su resultado. setdefault utilizando la sintaxis anterior tampoco funciona. ¿Hay algo que pueda hacer además de esto:
f = files.get(row.field1)
if not f:
f = files[row.field1] = open(row.field1, 'w')
get() no plantea un error clave si el artículo no se encuentra. [] la notación sí lo hace. p.ej. archivos [clave] – Jacob