Re: suggestions for improving code fragment please

Discussion in 'Python' started by Mitya Sirenef, Feb 28, 2013.

  1. On 02/28/2013 02:47 PM, The Night Tripper wrote:
    > Hi there
    > I'm being very dumb ... how can I simplify this fragment?
    >
    >
    > if arglist:
    > arglist.pop(0)
    > if arglist:
    > self.myparm1 = arglist.pop(0)
    > if arglist:
    > self.myparm2 = arglist.pop(0)
    > if arglist:
    > self.myparm3 = arglist.pop(0)
    > if arglist:
    > self.parm4 = arglist.pop(0)
    > # ...
    >
    > Thanks
    > J^n
    >
    >



    I often use this convenience function:

    def getitem(seq, index, default=None):
    """Get item from an `seq` at `index`, return default if index out of
    range."""
    try : return seq[index]
    except IndexError : return default


    If you're ok with setting myparm values to default None, you can do:

    self.myparm1, self.myparm2, self.myparm3, self.myparm4 = \
    (getitem(arglist, n) for n in range(4))


    If you only want to set them when they are in arglist:

    for n in range(4):
    val = getitem(arglist, n)
    if val is not None:
    setattr(self, "myparm%d" % (n+1), val)

    -m



    --
    Lark's Tongue Guide to Python: http://lightbird.net/larks/

    “So many books, so little time.â€
    ― Frank Zappa
    Mitya Sirenef, Feb 28, 2013
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Rick Johnson
    Replies:
    0
    Views:
    90
    Rick Johnson
    Feb 28, 2013
  2. Joel Goldstick
    Replies:
    0
    Views:
    97
    Joel Goldstick
    Feb 28, 2013
  3. Ian Kelly
    Replies:
    0
    Views:
    89
    Ian Kelly
    Feb 28, 2013
  4. Tim Chase
    Replies:
    0
    Views:
    86
    Tim Chase
    Feb 28, 2013
  5. MRAB
    Replies:
    0
    Views:
    83
Loading...

Share This Page