Your question is Handling Missing Data in Python. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
Synthego's CRISPR Design Tool produces records containing guide information and optional metadata. Implement a function that fills missing values using a supplied defaults map.
A value is considered missing when its field is absent from the record, set to None, or equal to the empty string "". Replace only missing values. Preserve existing values, including 0, False, and non-empty strings. The function must not mutate the input records.
Given records, a list of dictionaries, and defaults, a dictionary mapping field names to replacement values, return a new list of dictionaries. Each output record must contain every field in defaults. Fields not listed in defaults must remain unchanged. Preserve the original record order.
def fill_missing(records, defaults):