Bob van der Poel 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?

try:
    start, end = s[1:-1].split(':')
except ValueError:
    start = int(s[1:-1] # only one value specified
    end = start+1
start = int(start) if start else 0
end = int(end) if end else len(x)
x[start:end]

~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to