Re: Replace elements in structured list

• To: mathgroup at smc.vnet.net
• Subject: [mg99078] Re: [mg99062] Replace elements in structured list
• 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}}

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
> Now I must note that the original data can have fewer/more levels,
> elements, etc.
>