Re: List Manipulation

• To: mathgroup at smc.vnet.net
• Subject: [mg124915] Re: List Manipulation
• From: "Oleksandr Rasputinov" <oleksandr_rasputinov at ymail.com>
• Date: Sun, 12 Feb 2012 05:01:00 -0500 (EST)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <jh6k3l\$jrc\$1@smc.vnet.net>

```On Sat, 11 Feb 2012 20:46:45 -0000, Murta <rodrigomurtax 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?
> Murta
>

Undoubtedly there are many ways to accomplish this. Here's one using
Distribute:

MapThread[Distribute[{##}, List, List, Sequence] &, {l1, l2}]

{{a, 1}, {a, 2}, {a, 3}, {b, 4}, {b, 5}, {b, 6}, {c, 7}, {c, 8}, {c, 9}}

and here's one using Inner:

Inner[List, l1, Transpose[l2], Sequence]

{{a, 1}, {b, 2}, {c, 3}, {a, 4}, {b, 5}, {c, 6}, {a, 7}, {b, 8}, {c, 9}}

```

• Prev by Date: Re: How to call 'Clear' from within a function?
• Next by Date: Re: Some assistance from seasoned users.
• Previous by thread: Re: List Manipulation
• Next by thread: Re: List Manipulation