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