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

Ethan Furman ethan at stoneleaf.us
Wed Dec 16 12:06:48 EST 2020


On 12/16/20 3:08 AM, Peter J. Holzer wrote:
> On 2020年12月15日 13:07:25 -0800, Ethan Furman wrote:
>> On 12/15/20 9:07 AM, Mark Polesky via Python-list wrote:
>>>>> D = {'a':1}
>>>>>> def get_default():
>>> print('Nobody expects this')
>>> return 0
>>>>>> print(D.get('a', get_default()))
>>>> Python has short-circuiting logical operations, so one way to get the behavior you're looking for is:
>>>> D.get('a') or get_default()
>> That will call get_default for any falsey value (0, "", an empty list ...),
> not just for missing values.
>> Which may or may not be what the OP wants.

Good point, thanks for clarifying.
--
~Ethan~


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /