私は、個々のファイルにデータを分割するためのオープンファイルの辞書を保持しようとしています。私が辞書からファイルを要求するとき、私はそれが鍵がそこになければ開かれたいと思います。しかし、デフォルトとしてラムダを使うことはできません。辞書のデフォルトとしてラムダを使用することは可能ですか?
files = {}
for row in data:
f = files.get(row.field1, lambda: open(row.field1, 'w'))
f.write('stuff...')
fは結果ではなく関数に設定されているため、これは機能しません。上記の構文を使用してsetdefaultは動作しません。
f = files.get(row.field1)
if not f:
f = files[row.field1] = open(row.field1, 'w')
のget()発生しません。項目が見つからない場合はキーエラーです。 []記法があります。例えばファイル[キー] – Jacob