MathGroup Archive 2002

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

Search the Archive

RE: Assigning to a sublist

  • To: mathgroup at smc.vnet.net
  • Subject: [mg35170] RE: [mg35161] Assigning to a sublist
  • From: "DrBob" <majort at cox-internet.com>
  • Date: Fri, 28 Jun 2002 02:30:57 -0400 (EDT)
  • Reply-to: <drbob at bigfoot.com>
  • Sender: owner-wri-mathgroup at wolfram.com

You can Set a Part of a variable, as in

yy[[2]]=(anything)

However, when you try

zz[[3]][[2]] = (anything)

you are trying to Set a Part of zz[[3]] (which is a constant), not Part
of zz, as you intend.

The solution is to Set a Part of zz, as follows:

zz = {{2, {{1, 1}}}, {10, {{3, 1}}}, {5, {{2, 1}}}};
zz[[3, 2]] = Append[zz[[3]][[2]], {1, 1, 1, 1, 1}];
zz

{{2, {{1, 1}}}, {10, {{3, 1}}}, {5, {{2, 1}, {1, 1, 1, 1, 1}}}}

or equivalently:

zz = {{2, {{1, 1}}}, {10, {{3, 1}}}, {5, {{2, 1}}}};
AppendTo[zz[[3, 2]], {1, 1, 1, 1, 1}];
zz

{{2, {{1, 1}}}, {10, {{3, 1}}}, {5, {{2, 1}, {1, 1, 1, 1, 1}}}}

Look up Part in the Help browser, for more ideas.

Bobby Treat

-----Original Message-----
From: Bob Harris [mailto:nitlion at mindspring.com] 
To: mathgroup at smc.vnet.net
Subject: [mg35170] [mg35161] Assigning to a sublist

Howdy,

I'm trying to assign a new value to an entry in a sublist (of another list),
and I can't understand why it won't work.

For example, I do the following:

  In[1]:= zz = {{2, {{1, 1}}}, {10, {{3, 1}}}, {5, {{2, 1}}}}
  Out[1]= {{2, {{1, 1}}}, {10, {{3, 1}}}, {5, {{2, 1}}}}

  In[2]:= zz[[3]][[2]]
  Out[2]= {{2, 1}}

  In[3]:= Append[zz[[3]][[2]], {1, 1, 1, 1, 1}]
  Out[3]= {{2, 1}, {1, 1, 1, 1, 1}}

  In[4]:= zz[[3]][[2]] = Append[zz[[3]][[2]], {1, 1, 1, 1, 1}]
  Set::"setps : zz[[3]] in assignment of part is not a symbol."
  Out[4]= {{2, 1}, {1, 1, 1, 1, 1}}

For some reason it doesn't like the assignment.  What confuses me is
that is
zz[[3]][[2]] were just a variable, it would work.  Further, if it were
just
an entry at the *top* level of a list, it would work, as this example
shows:

  In[5]:= yy = zz[[3]]
  Out[5]= {5, {{2, 1}}}

  In[6]:= yy[[2]]
  Out[6]= {{2, 1}}

  In[7]:= yy[[2]] = Append[yy[[2]], {1, 1, 1, 1, 1}]
  Out[7]= {{2, 1}, {1, 1, 1, 1, 1}}

So it seems like the issue is just that deeply nested things don't
behave
like things that are not as deeply nested.  Am I right about that?  How
can
I modify an entry in a sublist?

Thanks,
Bob H






  • Prev by Date: Re: Assigning to a sublist
  • Next by Date: RE: Assigning to a sublist
  • Previous by thread: Re: Assigning to a sublist
  • Next by thread: RE: Assigning to a sublist