Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: How do I test for existence of a list element? Clarified

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112735] Re: How do I test for existence of a list element? Clarified
  • From: Joseph Gwinn <joegwinn at comcast.net>
  • Date: Wed, 29 Sep 2010 04:11:17 -0400 (EDT)
  • References: <i7mq20$ote$1@smc.vnet.net> <i7pp4g$l6e$1@smc.vnet.net>

In article <i7pp4g$l6e$1 at smc.vnet.net>,
 "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com> wrote:

> I don't know what your problem with using Length is, 

Too obvious, but sometimes clumsy to use.  And I figured that 
Mathematica must have a more direct approach, hidden in some dusty 
corner.  It appears that Check such a function, and I had not heard of 
it before.

Thanks,

Joe Gwinn


> ... but if you really
> need a specific test function you can easily roll it yourself:
> 
> indexQ[index_Integer, list_List] := index <= Length[list]
> 
> Cheers -- Sjoerd
> 
> On Sep 26, 8:43 am, Joseph Gwinn <joegw... at comcast.net> wrote:
> > I have an application where I am bouncing around in a list, and may
> > accidentally ask for an element beyond the end of the list, which causes
> > Mathematica to complain and balk, preventing completion.
> >
> > Is there any way to test for the existence of a list element without
> > provoking complaint or balking should the list item fail to exist?
> >
> > Many of the suggestions made offline in response to the above imply that
> > I wasn't clear enough, so here is some expansion:
> >
> > All the list operations like MemberQ tell you if a member of the list
> > has some property or not.  But it does not solve the problem of telling
> > if a slot (part) exists or not.  
> >
> > For instance:
> >
> > list={a, b, c, d};  x=list[[60]]
> >
> > Mathematica will complain that "list[[60]]" does not exist, which is true=
> .
> >
> > Mathematica's specific complaint is "Part::partw: Part 60 of {a,b,c,d} do=
> es not
> > exist."  Turning the error message off does not solve the problem.
> >
> > The question is how to test if list[[60]] exists without losing control
> > if it does not.
> >
> > Other than by doing the usual arithmetic and test involving Length[list].
> >
> > It may be that no such test exists, which would also be useful to know.
> >
> > Thanks,
> >
> > Joe Gwinn


  • Prev by Date: Re: SyntaxInformation and OptionsPattern
  • Next by Date: Re: Test for dialog existence
  • Previous by thread: Re: How do I test for existence of a list element? Clarified
  • Next by thread: Re: How do I test for existence of a list element? Clarified