Thanks for the detailed explanation Steve. That was very helpful. On Fri, May 27, 2011 at 8:04 PM, Steven D'Aprano <st...@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@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.
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor