On Thu, Dec 17, 2020 at 11:16 PM jak <nos...@please.ty> wrote: > > 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.
Yes, it does, but hash lookups are pretty fast. Unless your key is some sort of custom object with a very expensive __hash__ function, the double lookup isn't going to be too costly. But if that does bother you, you can write it as a try/except instead. ChrisA -- https://mail.python.org/mailman/listinfo/python-list