Creating slice notation from string

Jan Kaliszewski zuo at chopin.edu.pl
Wed Sep 2 19:43:43 EDT 2009


03-09-2009 o 00:55:10 Bob van der Poel <bob at 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) <zuo at chopin.edu.pl>


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /