Finding the array index number for known content.

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • PhilC

    Finding the array index number for known content.

    Hi Folks,

    If I have an array holding a pair of numbers, and that pairing is
    unique, is there a way that I can find the array index number for that
    pair?

    Thanks,

    PhilC
  • Josiah Carlson

    #2
    Re: Finding the array index number for known content.


    PhilC <pcooke@philc.n et> wrote:[color=blue]
    > If I have an array holding a pair of numbers, and that pairing is
    > unique, is there a way that I can find the array index number for that
    > pair?[/color]

    If by "array" you mean "Python list", then yes:
    lst.index(pair)

    If by "array" you mean "array from the array module", then "pair of
    numbers" is just two adjacent numbers that are of your 'pair' value,
    then you are going to have to do it by hand...

    def find_pair(arry, val1, val2):
    for i in xrange(len(arry )-1):
    if arry[i] == val1 and arry[i+1] == val2:
    return i
    raise IndexError, "pair (%s, %s) not found in array"%(val1, val2)


    - Josiah

    Comment

    • PhilC

      #3
      Re: Finding the array index number for known content.

      That was quick :)

      Thank you very much indeed.

      Regards

      Phil

      On Fri, 29 Oct 2004 18:47:20 -0700, Josiah Carlson <jcarlson@uci.e du>
      wrote:
      [color=blue]
      >
      >PhilC <pcooke@philc.n et> wrote:[color=green]
      >> If I have an array holding a pair of numbers, and that pairing is
      >> unique, is there a way that I can find the array index number for that
      >> pair?[/color]
      >
      >If by "array" you mean "Python list", then yes:
      > lst.index(pair)
      >
      >If by "array" you mean "array from the array module", then "pair of
      >numbers" is just two adjacent numbers that are of your 'pair' value,
      >then you are going to have to do it by hand...
      >
      >def find_pair(arry, val1, val2):
      > for i in xrange(len(arry )-1):
      > if arry[i] == val1 and arry[i+1] == val2:
      > return i
      > raise IndexError, "pair (%s, %s) not found in array"%(val1, val2)
      >
      >
      > - Josiah[/color]

      Comment

      • Skip Montanaro

        #4
        Re: Finding the array index number for known content.


        Phil> If I have an array holding a pair of numbers, and that pairing is
        Phil> unique, is there a way that I can find the array index number for
        Phil> that pair?
        [color=blue]
        >From the "teach them to fish" department...[/color]

        Python, being the introspective language that it is, helps you answer these
        sorts of questions pretty easily. Your question was in general, "is there a
        way to do X with a list?". The first step is to ask a list what it knows
        about itself:

        % python
        Python 2.4b1 (#52, Oct 17 2004, 13:54:51)
        [GCC 3.3 20030304 (Apple Computer, Inc. build 1493)] on darwin
        Type "help", "copyright" , "credits" or "license" for more information.[color=blue][color=green][color=darkred]
        >>> dir([])[/color][/color][/color]
        ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',
        '__delslice__', '__doc__', '__eq__', '__ge__', '__getattribute __',
        '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__',
        '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__',
        '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__' ,
        '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__',
        '__setslice__', '__str__', 'append', 'count', 'extend', 'index',
        'insert', 'pop', 'remove', 'reverse', 'sort']

        Hmmm... there's an "index" attribute. Let's see what that's all about:
        [color=blue][color=green][color=darkred]
        >>> help([].index)[/color][/color][/color]
        Help on built-in function index:

        index(...)
        L.index(value, [start, [stop]]) -> integer -- return first index of
        value

        Looks promising (as Josiah already suggested it would be).

        It's often also helpful to ask for help about an object's type (or class).
        List objects are instances of the list type, and there is useful help about
        it:
        [color=blue][color=green][color=darkred]
        >>> help(list)[/color][/color][/color]

        Help on class list in module __builtin__:

        class list(object)
        | list() -> new list
        | list(sequence) -> new list initialized from sequence's items
        |
        | Methods defined here:
        |
        | __add__(...)
        | x.__add__(y) <==> x+y
        |
        | __contains__(.. .)
        | x.__contains__( y) <==> y in x
        |
        | __delitem__(... )
        | x.__delitem__(y ) <==> del x[y]
        ...

        The powers of the help builtin are available via the pydoc command as well,
        e.g.:

        % pydoc sys
        Help on built-in module sys:

        NAME
        sys

        FILE
        (built-in)

        MODULE DOCS


        DESCRIPTION
        This module provides access to some objects used or maintained by
        the interpreter and to functions that interact strongly with the
        interpreter.
        ...

        % pydoc list
        Help on class list in module __builtin__:

        class list(object)
        | list() -> new list
        | list(sequence) -> new list initialized from sequence's items
        |
        ...

        Pydoc even supports a web server interface. Try something like:

        pydoc -p 8709

        then visit



        To find out about builtin types (and builtin objects in general), click the
        __builtin__ link. If you want help on a module the help displayed will
        likely have a link to the relevant section of the standard documentation as
        well.

        Now go fish my son. Don't come back until you have caught your limit of
        rainbow trout...

        Skip

        Comment

        • PhilC

          #5
          Re: Finding the array index number for known content.

          Hi Skip,

          This is very much appreciated. I certainly understand the fishing
          concept. I'm probably like many others here in that I have no formal
          computer training. (I used to be a plumber :) I think I've downloaded
          ..... and more to the point read .... most of the major help files but
          with this last one I was truly stuck.

          Now going to go through your and Josiah's answers in greater depth.

          Again my sincere thanks to you both.

          Phil

          Comment

          Working...