dict.get(key, default) evaluates default even if key exists

jak nospam at please.ty
Thu Dec 17 07:10:17 EST 2020


Il 17/12/2020 12:40, Peter J. Holzer ha scritto:
> On 2020-12-17 12:16:29 +0100, jak wrote:
>> print(_ if d.get('a', None) is not None else get_default())
> 
> That doesn't work:
> 
>>>> print(_ if d.get('a', None) is not None else get_default())
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> NameError: name '_' is not defined
> 
> But this works:
> 
>>>> print(_ if (_ := d.get('a', None)) is not None else get_default())
> 1
> 
> (I would prefer ChrisA's solution, though.)
> 
>          hp
> 
this one?

""""

D['a'] if 'a' in D else get_default()

ChrisA

""""

This solution search two times same key.


More information about the Python-list mailing list