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: [mg112696] Re: How do I test for existence of a list element? Clarified
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Mon, 27 Sep 2010 05:47:24 -0400 (EDT)

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]],{}]]
{}

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: calculate vertex of a parabola
  • Next by Date: Re: Perhaps a FindMinimum issue...
  • 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