Re: Replace elements in structured list
- To: mathgroup at smc.vnet.net
- Subject: [mg99066] Re: Replace elements in structured list
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Sun, 26 Apr 2009 01:36:55 -0400 (EDT)
- References: <gsuivb$duh$1@smc.vnet.net>
Hi,
c = 1;
data /. _Integer :> c++
?
Regards
Jens
replicatorzed at gmail.com wrote:
> 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
>