03-09-2009 o 00:55:10 Bob van der Poel <b...@mellowood.ca> wrote:

For a one-liner:

   x[slice(*map(int, x[1:-1].split(':')))]

Thanks.

Almost works :)

For s="[2]" and s="[1:2]" it's fine. But, if I have

s = "[:2]" then I get:

x[slice(*[int(i) for i in s.strip("[]").split(":")])]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''

Similar problem with  [2:].

Ideas?

    x = [1,4,3,5,4,6,5,7]
    s = '[3:6]'

    x[slice(*((int(i) if i else None)
              for i in s.strip("[]").split(":")))]

Cheers,
*j

--
Jan Kaliszewski (zuo) <z...@chopin.edu.pl>
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to