Exclude 'None' from list comprehension of dicts

Antoon Pardon antoon.pardon at vub.be
Thu Aug 4 14:35:55 EDT 2022


Op 4/08/2022 om 13:51 schreef Loris Bennett:
> Hi,
>
> I am constructing a list of dictionaries via the following list
> comprehension:
>
>    data = [get_job_efficiency_dict(job_id) for job_id in job_ids]
>
> However,
>
>    get_job_efficiency_dict(job_id)
>
> uses 'subprocess.Popen' to run an external program and this can fail.
> In this case, the dict should just be omitted from 'data'.
>
> I can have 'get_job_efficiency_dict' return 'None' and then run
>
>    filtered_data = list(filter(None, data))
>
> but is there a more elegant way?

Just wondering, why don't you return an empty dictionary in case of a failure?
In that case your list will be all dictionaries and empty ones will be processed
fast enough.

-- 
Antoon Pardon.



More information about the Python-list mailing list