¿Hay alguna manera en python de usar una tupla como los índices de un sector? La siguiente no es válido:Crear un sector usando una tupla
>>> a = range(20)
>>> b = (5, 12) # my slice indices
>>> a[b] # not valid
>>> a[slice(b)] # not valid
>>> a[b[0]:b[1]] # is an awkward syntax
[5, 6, 7, 8, 9, 10, 11]
>>> b1, b2 = b
>>> a[b1:b2] # looks a bit cleaner
[5, 6, 7, 8, 9, 10, 11]
Parece que una sintaxis razonablemente Pythonic por lo que me sorprende que no puedo hacerlo.
(actualización) Y la solución resulta ser:
>>> a[slice(*b)]
[5, 6, 7, 8, 9, 10, 11]
me había olvidado por completo de la sintaxis '* args' de pitón. Aunque sería más pitónico si pudiera escribir 'a [* b]'. Por supuesto, esto entraría en conflicto con las matrices multidimensionales, por lo que la sintaxis de corte ordinario es aún mejor. La inclusión de la porción de palabra es más larga, pero probablemente ilustra mucho más claramente el propósito del código. – Mike