List comprehension returning subclassed list type?

Shane Geiger sgeiger at ncee.net
Sun Mar 25 02:57:39 EDT 2007


To the best of my understanding, this answers your question:

   iterable
          A container object capable of returning its members one at a
          time. Examples of iterables include all sequence types (such as
          list, str, and tuple) and some non-sequence types like dict and
          file and objects of any classes you define with an __iter__()
          or __getitem__() method. Iterables can be used in a for loop
          and in many other places where a sequence is needed (zip(),
          map(), ...). When an iterable object is passed as an argument
          to the builtin function iter(), it returns an iterator for the
          object. This iterator is good for one pass over the set of
          values. When using iterables, it is usually not necessary to
          call iter() or deal with iterator objects yourself. The for
          statement does that automatically for you, creating a temporary
          unnamed variable to hold the iterator for the duration of the
          loop. See also iterator, sequence, and generator.


bullockbefriending bard wrote:
> Given:
>
> class Z(object):
>     various defs, etc.
>
> class ZList(list):
>     various defs, etc.
>
> i would like to be able to replace
>
> z_list = ZList()
> for y in list_of_objects_of_class_Y:
>     z_list.append(y)
>
>
> with something like this:
>
> z_list = [Z(y.var1, y.var2,..) for y in list_of_objects_of_class_Y]
>
> Of course this just gives me a plain list and no access to the
> methodsof z_list. I could, of course go and write a static method in
> ZList which takes a plain list of Z objects and returns a ZList.
>
> Anyway, my question is whether or not this can be done more elegantly
> via list comprehension?
>
>   

-- 
Shane Geiger
IT Director
National Council on Economic Education
sgeiger at ncee.net  |  402-438-8958  |  http://www.ncee.net

Leading the Campaign for Economic and Financial Literacy

-------------- next part --------------
A non-text attachment was scrubbed...
Name: sgeiger.vcf
Type: text/x-vcard
Size: 310 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-list/attachments/20070325/fe2ee076/attachment.vcf>


More information about the Python-list mailing list