Cortar una lista usando una variable, en Python

Dada una lista

a = range(10) 

Puedes cortarlo usando instrucciones como

 a[1] a[2:4] 

Sin embargo, quiero hacer esto en base a una variable establecida en otra parte del código. Puedo hacer esto fácilmente para el primero

 i = 1 a[i] 

Pero, ¿cómo hago esto para el otro? He intentado indexar con una lista:

 i = [2, 3, 4] a[i] 

Pero eso no funciona. También he intentado usar una cadena:

 i = "2:4" a[i] 

Pero eso tampoco funciona.

es posible?

Related of "Cortar una lista usando una variable, en Python"

para eso es slice()

 a = range(10) s = slice(2,4) print a[s] 

Eso es lo mismo que usar a[2:4] .

¿Por qué tiene que ser una sola variable? Solo usa dos variables:

 i, j = 2, 4 a[i:j] 

Si realmente necesita ser una sola variable, podrías usar una tupla.

 >>> a=range(10) >>> i=[2,3,4] >>> a[i[0]:i[-1]] range(2, 4) >>> list(a[i[0]:i[-1]]) [2, 3] 

Con las asignaciones a continuación, sigue utilizando el mismo tipo de operaciones de segmentación que muestra, pero ahora con variables para los valores.

 a = range(10) i = 2 j = 4 

entonces

 print a[i:j] [2, 3]