Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2002
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2002

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

Search the Archive

RE: Assigning to a sublist

  • To: mathgroup at smc.vnet.net
  • Subject: [mg35178] RE: [mg35161] Assigning to a sublist
  • From: "David Park" <djmp at earthlink.net>
  • Date: Fri, 28 Jun 2002 02:31:16 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Bob,

This is a case where zz[[3]][[2]] is not the same as zz[[3,2]].

zz = {{2, {{1, 1}}}, {10, {{3, 1}}}, {5, {{2, 1}}}};

zz[[3,2]] = Append[zz[[3]][[2]], {1, 1, 1, 1, 1}]
{{2, 1}, {1, 1, 1, 1, 1}}

The Head of zz[[3,2]] is zz, a symbol.
The Head of zz[[3]][[2]] is zz[[3]], which gets evaluated to a List
expression and is not a symbol.

You should be able to use the first form, perhaps by Applying Sequence to
the list of subpositions.

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/


> From: Bob Harris [mailto:nitlion at mindspring.com]
To: mathgroup at smc.vnet.net
>
>
> 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