En Tue, 08 Apr 2008 00:54:09 -0300, BonusOnus <[EMAIL PROTECTED]> escribió:
> How do I pass a dictionary to a function as an argument? The indentation is lost, so it's not easy to check your program. > # Say I have a function foo... Original: def foo(arg=[]). An empty list isn't a good default value here, perhaps you intended to use {}? Anyway, don't use mutable default values; see this FAQ entry: http://www.python.org/doc/faq/general/#why-are-default-values-shared-between-objects def foo(arg): x = arg['name'] y = arg['len'] s = len(x) t = s + y return s, t # don't use dict as a variable name, you're hiding the builtin dict type my_dict = {} my_dict['name'] = 'Joe Shmoe' my_dict['len'] = 44 # don't use len as a name either # nor string! length, string = foo(my_dict) > # This bombs with 'TypeError: unpack non-sequence' > What am I doing wrong with the dictionary? Nothing. Written as above, it works fine. Don't retype your programs, always copy & paste from the same source you're executing. If you get an exception, post the entire traceback with the exact exception name and message. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list