Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Building List

  • To: mathgroup at smc.vnet.net
  • Subject: [mg48047] RE: [mg48015] Building List
  • From: "DrBob" <drbob at bigfoot.com>
  • Date: Sat, 8 May 2004 01:23:57 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Here are two methods. The second may be faster if ell is very long.

ell={{1,2},{3,4,5,6},{7,8}};
rule1={a___List,{b_,c_,d__},e___List}:>{a,{b,c},{b,d},e};
ell//.rule1

{{1,2},{3,4},{3,5},{3,6},{7,8}}

rule2={b_,c_,d__}:>Sequence[{b,c},{b,d}];
f=#//.rule2&;
f/@ell

{{1,2},{3,4},{3,5},{3,6},{7,8}}

DrBob

www.eclecticdreams.net


-----Original Message-----
From: Bruce W. Colletti [mailto:bcolletti at compuserve.com] 
To: mathgroup at smc.vnet.net
Subject: [mg48047] [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




  • Prev by Date: Re: Building List
  • Next by Date: Re: Mandelbrot Set & Mathematica
  • Previous by thread: Re: Building List
  • Next by thread: Re: Building List