Re: arrange lists side by side
- To: mathgroup at smc.vnet.net
- Subject: [mg56575] Re: arrange lists side by side
- From: Peter Pein <petsie at arcor.de>
- Date: Fri, 29 Apr 2005 03:20:48 -0400 (EDT)
- References: <d4q1qj$oh8$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
marloo3 at mail15.com wrote: > Hi > is there a way to spread out a small list over a bigger list recurrently like > this: > a={28, 30, 17}; > b={1, 2, 9, 4, 5, 7, 3, 8}; > to give the output: > {{1,28},{2,30},{9,17},{4,28},{5,30},{7,17},{3,28},{8,30}}; > the number of items in "b" do not neccesary multiples of the number of items > in "a" > mark > > okay this is my approach > > a={28,30,17}; > b={1,2,9,4,5,7,3,8}; > aa={};aa=Table[Join[aa,a],{i,Length[b]/Length[a]}] > > Out[]= > {{28,30,17},{28,30,17}} > > frc=Mod[Length[b],Length[a]]; > gg=Flatten[Join[aa,Part[a,{1,frc}]]]; > Transpose[Join[{b},{gg}]] > > Out[]= > {{1,28},{2,30},{9,17},{4,28},{5,30},{7,17},{3,28},{8,30}} > > ---------------------------------------------------------------------- > > There are many ways to do this. Three are: MapIndexed[{#1,a[[Mod[#2[[1]],Length[a],1]]]}&,b] Transpose@Prepend[Partition[a,Length[b],1,{1,Length[a]}],b] Inner[List,b,PadRight[a,Length[b],a],List] -- Peter Pein Berlin