Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

Re: Replace elements in structured list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg99078] Re: [mg99062] Replace elements in structured list
  • From: Adriano Pascoletti <adriano.pascoletti at dimi.uniud.it>
  • Date: Sun, 26 Apr 2009 01:39:12 -0400 (EDT)
  • References: <200904250852.EAA14320@smc.vnet.net>

Use ReplaceAll (/.)


In[3]:= c = 1; data /. _?NumberQ :> c++
Out[3]= {{1, {2, 3, 4, 5}, {6, 7, 8, 9}, 10}, {11, {12, 13, 14, 15},
     {16, 17, 18, 19}, 20}}



Adriano Pascoletti

2009/4/25 <replicatorzed at gmail.com>

> Dear Group,
>
> how would you solve this problem in an elegant and effective way?
> My aim is to get a list of consecutive numbers, starting from 1, AND
> to retain the structure of the original list as well.
>
> In[49]:= data = {{1, {2, 2, 2, 2}, {2, 2, 2, 2}, 1}, {1, {2, 2, 2, 2},
> {2, 2, 2, 2}, 1}};
>
> c = 1;
>
> Replace[data, _?NumberQ :> c++, \[Infinity]]
>
> Out[51]= {{37, {38, 39, 40, 41}, {42, 43, 44, 45},
>  46}, {47, {48, 49, 50, 51}, {52, 53, 54, 55}, 56}}
>
> So the function should return a similar list, but starting at 1
> instead of 37.
> Now I must note that the original data can have fewer/more levels,
> elements, etc.
>
> Thank you in advance,
> Istvan Zachar
>
>



  • Prev by Date: Re: Is this solvable using Mathematica?
  • Next by Date: Re: ZigZag matrix rearrange
  • Previous by thread: Replace elements in structured list
  • Next by thread: Re: Replace elements in structured list