At 2008-10-13T13:14:15Z, [EMAIL PROTECTED] writes:

> jdd:
>> foo = {'bar': 'baz'}
>> foo.update({'quux': 'blah'})
>
> That creates a new dict, to throw it away. Don't do that.

I use that if I'm changing many values at once, eg:

    foo.update({
        'quux': 'blah',
        'baz' : 'bearophile',
        'jdd' : 'dict',
    })

instead of:

    foo['quux'] = 'blah'
    foo['baz'] = 'bearophile'
    foo['jdd'] = 'dict'

because it seems to more clearly indicate what I'm doing, and has fewer
opportunities for types.  Still, there is a performance penalty.  Running
"my way" 10,000,000 times took 8.7s, and "your way" only took 4.7s.  If
you're doing this in an inner loop, that may be significant.  While we're on
the subject, use keyword arguments to dict like:

    foo.update(dict(quux='blah', baz='bearophile', jdd='dict'))

was *much* slower, at 11.8s.
-- 
Kirk Strauser
The Day Companies
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to