[Tutor] Creating a dictionary

spawgi at gmail.com spawgi at gmail.com
Fri May 27 16:47:55 CEST 2011


Thanks for the detailed explanation Steve. That was very helpful.

On Fri, May 27, 2011 at 8:04 PM, Steven D'Aprano <steve at pearwood.info>wrote:

> Válas Péter wrote:
>
>> Hi,
>> I think I am new to here, as far as I remember. :-)
>>
>> http://docs.python.org/dev/library/stdtypes.html#dict says:
>> we can create a dictionary with
>>
>>   - dict({'one': 1, 'two': 2})
>>
>> What is the adventage of this form to simply writing d = {'one': 1, 'two':
>> 2}?
>> Is there any difference?
>>
>
> dict() is a function (technically, a type) that creates new dictionaries
> from whatever argument you pass to it. { ... } is syntax for creating
> literal dictionaries. Think of this as similar to the difference between a
> mathematical expression:
>
> x = 2*9-1
>
> and a number literal:
>
> x = 17
>
>
> HOWEVER, in the above example with dict(), the form shown is redundant.
> dict({'one': 1, 'two': 2}) does these four steps:
>
> (a) Python creates a dictionary using the "dict literal" syntax
>    {'one': 1, 'two': 2}
> (b) That dictionary is then passed to the dict() function
> (c) The dict() function makes a copy of that dictionary and returns it
> (d) Python's garbage collector deletes the original dictionary.
>
> Never put a lone dict literal {...} inside a call to dict(), that's just a
> waste of time. Just use the literal on its own.
>
> dict() *can* be very useful, just not in the example shown. You can use it
> to make copies of other dicts:
>
>
> first_dict = {'one': 1, 'two': 2}
> second_dict = dict(first_dict)
>
>
> That's not very interesting, as you can easily make a copy with
> first_dict.copy() instead. But it gets more interesting if you want to add
> new items to the dictionary:
>
>
> third_dict = dict(first_dict, three=3, four=4)
>
>
> You can even leave out the original dict:
>
>
> fourth_dict = dict(a=1, b=2, c=3)
>
>
> or instead use a list of (key, value) pairs:
>
>
> items = [('a', 1), ('b', 2), ('c', 3)]
> fifth_dict = dict(items, d=4)
>
>
>
> --
> Steven
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>



-- 
http://spawgi.wordpress.com
We can do it and do it better.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110527/fbfe3297/attachment-0001.html>


More information about the Tutor mailing list