How to say $a=$b->{"A"} ||={} in Python?

beginner zyzhu2000 at gmail.com
Thu Aug 16 18:52:18 EDT 2007


On Aug 16, 5:43 pm, ra... at dot.com (Lawrence Oluyede) wrote:
> beginner <zyzhu2... at gmail.com> wrote:
> > I'd like to do the following in more succint code:
>
> > if k in b:
> >     a=b[k]
> > else:
> >     a={}
> >     b[k]=a
>
> b.setdefault(k, a)
>
> --
> Lawrence, oluyede.org - neropercaso.it
> "It is difficult to get a man to understand
> something when his salary depends on not
> understanding it" - Upton Sinclair

I am afraid it is not the same. b.setdefault(k, {}) will always create
an empty dict, even if k is in b, as demonstrated in the below code.

b={}
def f(i):
    print "I am evaluated %d" % i
    return i

b.setdefault('A', f(1))
b.setdefault('A', f(2))
b





More information about the Python-list mailing list