Re: List Manipulation
- To: mathgroup at smc.vnet.net
- Subject: [mg124925] Re: List Manipulation
- From: Ray Koopman <koopman at sfu.ca>
- Date: Sun, 12 Feb 2012 05:04:28 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jh6k3l$jrc$1@smc.vnet.net>
On Feb 11, 12:46 pm, Murta <rodrigomur... at gmail.com> wrote: > Hi All > > I'm looking some better solution for the below list manipulation: > l1={a,b,c}; > l2={{1,2,3},{4,5,6},{7,8,9}}; > output = {{a,1},{a,2},{a,3},{b,4},{b,5},{b,6},{c,7},{c,8},{c,9}} > It's a simple distributions of terms. > > I used this solution, but I think it's not an elegant one: > > f[a_, b_] := Flatten[{a, #}] & /@ b; > MapThread[f, {l1, l2}] // Flatten[#, 1] & > > Some clue? > Maybe with Outer or Inner? > Thanks in advance! > Murta Each of these is more compact than the corresponding version (in my earlier posts) that uses Flatten: Join@@MapThread[Thread[{##}]&,{l1,l2}] Join@@Thread/@Transpose@{l1,l2} {{a,1},{a,2},{a,3},{b,4},{b,5},{b,6},{c,7},{c,8},{c,9}} {{a,1},{a,2},{a,3},{b,4},{b,5},{b,6},{c,7},{c,8},{c,9}}