Próbuję zachować słownik otwartych plików do podziału danych na poszczególne pliki. Kiedy żądam pliku ze słownika, chciałbym go otworzyć, jeśli klucza tam nie ma. Jednak nie wygląda na to, że mogę użyć lambda jako domyślnej.czy możliwe jest użycie lambda jako domyślnego słownika?
np.
files = {}
for row in data:
f = files.get(row.field1, lambda: open(row.field1, 'w'))
f.write('stuff...')
Nie działa, ponieważ f jest ustawione na funkcję, a nie na jej wynik. setdefault przy użyciu powyższej składni też nie działa. Czy mogę coś zrobić oprócz tego:
f = files.get(row.field1)
if not f:
f = files[row.field1] = open(row.field1, 'w')
get() nie podnieść kluczowy błąd, jeśli przedmiot nie zostanie znaleziony. [] notacja robi. na przykład pliki [klucz] – Jacob