RE: Building List

• To: mathgroup at smc.vnet.net
• Subject: [mg48069] RE: [mg48015] Building List
• From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
• Date: Tue, 11 May 2004 05:19:52 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```>-----Original Message-----
>From: Bruce W. Colletti [mailto:bcolletti at compuserve.com]
To: mathgroup at smc.vnet.net
>Sent: Friday, May 07, 2004 10:30 AM
>To: mathgroup at smc.vnet.net
>Subject: [mg48069] [mg48015] Building List
>
>
>Re Mathematica 5.0.1.0.
>
>I have a list of lists -- e.g., L = { {1,2},{3,4,5,6},{7,8} } -- and
>want to replace element-lists (whose length exceeds 2) with
>another list
>built from that element.  All else is untouched.
>
>For instance, using L above, replace {3,4,5,6} with {3,4},
>{3,5}, {3,6}.
> This transforms L to the desired form { {1,2}, {3,4}, {3,5}, {3,6},
>{7,8} }.
>
>Although I can do this using Sow and Reap, am hoping there's an easier
>way using rules (/.).  In general, I want to replace those
>L-elements x
>(that meet a criterion) with foo[x].
>
>Thanks.
>
>Bruce
>
>

I have to apologize for my nonsensious first reply (to a question you didn't pose). So here something better:

In[2]:=
Thread[{First[#], Rest[#]}] & /@ {{1, 2}, {3, 4, 5, 6}, {7, 8}}
Out[2]= {{{1, 2}}, {{3, 4}, {3, 5}, {3, 6}}, {{7, 8}}}

In[3]:=
Replace[{{1, 2}, {3, 4, 5, 6}, {7, 8}}, {a_, b__} :> Thread[{a, {b}}], {1}]
Out[3]= {{{1, 2}}, {{3, 4}, {3, 5}, {3, 6}}, {{7, 8}}}

--
Hartmut Wolf

```

• Prev by Date: RE: Eliminate duplicates using Union [] in a
• Next by Date: Re: Mandelbrot Set & Mathematica
• Previous by thread: RE: Building List
• Next by thread: Matrix Inversion