On Jul 25, 11:33 am, Paul Rubin <http://[EMAIL PROTECTED]> wrote: > beginner <[EMAIL PROTECTED]> writes: > > I know the * operator. However, a 'partial unpack' does not seem to work. > > A few other posters have mentioned ways around this, but you might ask > yourself what coding situation makes you want to do this stuff in the > first place. I won't say there's never a reason for it, but a lot of > times, a list containing a mixture of scalars and lists/tuples is a > sign that your underlying data representation is contorted. Things > are logically single values or they are logically lists of values, and > that mixed representation is often a sign that the item logically > should be a list, and you're hairing up the program with special > treatment of the case where the list has exactly one element. > > I.e. instead of [[1,2,], 3, [5,6,]] maybe you really want > [[1,2,], [3,], [5,6]] without the special treatment and flattening.
Very good question. It is well possible that the problem is my programming style. I am new to python and am still developing a style that works for me. A lot of things that work in perl does not seem to work. Unpacking and flattening are just two examples. I need nested lists to represent nested records in a script. Since the structure of the underlying data is nested, I think it is probably reasonable to represent them as nested lists. For example, if I have the below structure: Big Record Small Record Type A Many Small Record Type B Small Record Type C It is pretty natural to use lists, although after a while it is difficult to figure out the meaning of the fields in the lists. If only there were a way to 'attach' names to members of the list. For the unpacking question, I encountered it when working with list comprehensions. For example: [ f(*x,1,2) for x in list] is difficult to do if I don't want to expand *x to x[0]..x[n]. There are usually 7-10 items in the list and it is very tedious and error prone. The second problem is from a nested list comprehension. I just needed something to flatten the list at the moment. I am still forming my way to do things in python via trial and error. It is well possible that this is not the natural way to do things. -- http://mail.python.org/mailman/listinfo/python-list