fork download
  1. f=lambda s,a:[a[i]for x in[map(int,c.split('TO'))for c in s.split('AND')]for i in range(x[0]-1,x[-1]-2*(x[-1]<x[0]),1-2*(x[-1]<x[0]))if 0<=i<len(a)]
  2.  
  3. testA = ['H','e','l','l','o',' ','W','o','r','l','d']
  4. for testS in ("1 TO 3", "5", "-10 TO 10", "0 AND 2 AND 4", "8 TO 3", "-300 AND 300", "1 TO 3 AND 3 TO 1", "-20 TO 0 AND 1 AND 4"):
  5. print testS
  6. print f(testS, testA)
  7. print ''
  8.  
Success #stdin #stdout 0s 9024KB
stdin
Standard input is empty
stdout
1 TO 3
['H', 'e', 'l']

5
['o']

-10 TO 10
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l']

0 AND 2 AND 4
['e', 'l']

8 TO 3
['o', 'W', ' ', 'o', 'l', 'l']

-300 AND 300
[]

1 TO 3 AND 3 TO 1
['H', 'e', 'l', 'l', 'e', 'H']

-20 TO 0 AND 1 AND 4
['H', 'l']