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: [mg112736] 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:28 -0400 (EDT)
  • References: <i7pp76$l9j$1@smc.vnet.net>

In article <i7pp76$l9j$1 at smc.vnet.net>,
 Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote:

> The function Check is (probably) what you are looking for.
> 
> list == {a, b, c, d};
> 
>  x == Check[list[[60]], {}]
> During evaluation of In[69]:== Part::partw:Part 60 of {a,b,c,d} does not 
> exist. >>
> {}
> 
> You can use whatever you like instead of {}. If you don't want to see the 
> error message you don't have to:
> 
> x==Quiet[Check[list[[60]],{}]]
> {}

This looks quite suitable.  I knew that Mathematica must have such a 
function, somewhere in those thousands of functions and variants.   

Thanks,

Joe Gwinn


> Andrzej Kozlowski
> 
> 
> On 26 Sep 2010, at 08:42, Joseph Gwinn 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} does 
> > 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: Determining a valid URL
  • Next by Date: Re: Defining a function using common notation for absolute value (not Abs[x])
  • Previous by thread: Re: How do I test for existence of a list element? Clarified
  • Next by thread: PSE Example 8.6 via Reduce