Re: changing parts of a list of lists
- To: mathgroup at smc.vnet.net
- Subject: [mg52606] Re: changing parts of a list of lists
- From: astanoff_otez_ceci at yahoo.fr (astanoff)
- Date: Sat, 4 Dec 2004 04:07:46 -0500 (EST)
- References: <comgeg$62q$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Dan Drake wrote: > I'm working with a list of lists, such as {{1,2}, {3}, {4,5,6}}, and I > want to go through and make changes to each sublist, but I get the error > message "Set::setps: {{0,0,0},{0},{0}} in assignment of part is not a > symbol." > I don't quite understand what's going on. Here's a toy example that > shows the error: > f[x:{__List}] := For[i=1, i <= Length[x], i++, x[[i]] = {1, 2, 3}] [...] Dan, Let me quote David B. Wagner : "the best of doing something [with Mathematica] is almost never the procedural way". So you better not use For, Do or While to do what you want to do. Why not simply use Map or MapAt? In addition it's often better performance not to modify a large list in place. For example if you want to prepend a zero to each of your sublists you could do it this way : In[1]:=myList = {{1,2},{3},{4,5,6}}; In[2]:=newList = Map[Prepend[#,0]&,myList] Out[2]={{0,1,2},{0,3},{0,4,5,6}} hth Valeri -- 0% de pub! Que du bonheur et des vrais adhérents ! Vous aussi inscrivez-vous sans plus tarder!! Message posté à partir de http://www.gyptis.org, BBS actif depuis 1995.