Plus you probably don't want to set [] as default argument and then try to access it like a dictionary; you'll get an exception if you ever call just foo(), with no argument.
On Tue, Apr 8, 2008 at 12:57 AM, Jason Scheirer <[EMAIL PROTECTED]> wrote: > On Apr 7, 8:54 pm, BonusOnus <[EMAIL PROTECTED]> wrote: > > How do I pass a dictionary to a function as an argument? > > > > # Say I have a function foo... > > def foo (arg=[]): > > x = arg['name'] > > y = arg['len'] > > > > s = len (x) > > > > t = s + y > > > > return (s, t) > > > > # The dictionary: > > > > dict = {} > > dict['name'] = 'Joe Shmoe' > > dict['len'] = 44 > > > > # I try to pass the dictionary as an argument to a > > # function > > > > len, string = foo (dict) > > > > # This bombs with 'TypeError: unpack non-sequence' > > > > What am I doing wrong with the dictionary? > > You want to > return s, t > NOT return (s, t) -- this implicitly only returns ONE item > -- > http://mail.python.org/mailman/listinfo/python-list >
-- http://mail.python.org/mailman/listinfo/python-list