Verileri tek tek dosyalara ayırmak için açık dosyaların sözlüğünü tutmaya çalışıyorum. Sözlükden bir dosya istediğimde anahtarın orada olmaması durumunda açılmasını istiyorum. Ancak, lambda'yı varsayılan olarak kullanabiliyorum gibi görünmüyor.Bir lambda sözlük varsayılan olarak kullanmak mümkün mü?
örn.
files = {}
for row in data:
f = files.get(row.field1, lambda: open(row.field1, 'w'))
f.write('stuff...')
Bu, işe yaramaz çünkü f işlevi sonuçtan ziyade işleve ayarlanır. Yukarıdaki sözdizimini kullanan setdefault da çalışmıyor.
f = files.get(row.field1)
if not f:
f = files[row.field1] = open(row.field1, 'w')
olsun() zam yok Öğe bulunamazsa bir anahtar hatası. [] notasyon yapar. Örneğin. dosya [anahtar] – Jacob