Re: Transforming a list
- To: mathgroup at smc.vnet.net
 - Subject: [mg103135] Re: Transforming a list
 - From: dh <dh at metrohm.com>
 - Date: Wed, 9 Sep 2009 04:41:49 -0400 (EDT)
 - References: <h859pi$ps0$1@smc.vnet.net>
 
Hi Don.
simply replace 0's by an empty Sequence: Sequence[]:
{{c, d, e, f, g, 0}, {e, f, g, 0, 0, 0}, {g, 0, 0, 0, 0, 0}} /.
  0 -> Sequence[]
Daniel
Don wrote:
> I am given: lst =  {{c, e, g}, {d, f}, {e, g}, {f}, {g}, {}}
> 
> I want to form a list of sublists where the first sublist consists of the first elements
> from each sublist of lst, the second sublist the second elements from each of the sublists of lst etc.
> 
> The final outcome should be:
> {{c, d, e, f, g}, {e, f, g}, {g}}
> 
> I can do this by first padding the sublists of lst (to make them the same length)and then using Transpose. But how to get rid of the trailings 0's?
> 
> For example:
> 
> newLst = Map[PadRight[#, Length[lst[[1]]]] &, lst]
> 
> Transpose[newLst]
> 
> which produces:
> 
> {{c, d, e, f, g, 0}, {e, f, g, 0, 0, 0}, {g, 0, 0, 0, 0, 0}}
> 
> Is there a better way to end up with
> 
> {{c, d, e, f, g}, {e, f, g}, {g}}
> 
> Thank you.
>