Partition a list into sublists of unequal size
- To: mathgroup at smc.vnet.net
- Subject: [mg83919] Partition a list into sublists of unequal size
- From: antf <anthonyfox at gmail.com>
- Date: Tue, 4 Dec 2007 04:29:39 -0500 (EST)
Hello,
I have a list that looks like the following:
list={1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0}
I then find the positions of the 1s in the list:
positions = Flatten@Position[list,1]
{1,4,7,8,10,15}
I then want to partition a third list into sublists so that the first
sublist is from index 1;;1, the second sublist is from index 2;;4, the
third sublist is from index 5;;7, the fourth sublist is just element
8, etc.
Currently, I use Partition on the positions sublist with overlap as
in:
Partition[Join[{1},positions],2,1]
{{1,1},{1,4},{4,7},{7,8},{8,10},{10,15}}
I then use this list to partition the target list by Mapping Take to
each element of this list and adjusting the first index appropriately.
I am sure there must be a simpler way to do this. Can anyone tell me
how to do this operation?
Thanks,
Anthony
- Follow-Ups:
- Re: Partition a list into sublists of unequal size
- From: Sseziwa Mukasa <mukasa@jeol.com>
- Re: Partition a list into sublists of unequal size