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