J a écrit :
Ok... I know pretty much how .extend works on a list... basically it
just tacks the second list to the first list... like so:

lista=[1]
listb=[2,3]
lista.extend(listb)
print lista;
[1, 2, 3]

what I'm confused on is why this returns None:

So why the None? Is this because what's really happening is that
extend() and append() are directly manipulating the lista object and
thus not actuall returning a new object?

Exactly.

Even if that assumption of mine is correct, I would have expected
something like this to work:

lista=[1]
listb=[2,3]
print (lista.extend(listb))
None

So what ? It JustWork(tm). list.extend returns None, so "None" is printed !-)


(snip)

So changing debugger.printout() to:

   def printout(self,*info):

lets me pass in multiple lists... and I can do this:

   for tlist in info:
       for item in tlist:
            print item

which works well...

So, what I'm curious about, is there a list comprehension or other
means to reduce that to a single line?

Why do you think the above code needs to be "reduced to a single line" ? What's wrong with this snippet ???


It's more of a curiosity thing at this point...  and not a huge
difference in code... I was just curious about how to make that work.

Uh, ok.

What about:

from itertools import chain

def printout(*infos):
   print "\n".join("%s" % item for item in chain(*infos))


HTH


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to