py_twist_sequence · Python

▶ Aprender py_twist_sequence (Python) paso a paso · explicación de py_twist_sequence

Código línea a línea

Tres columnas: el código, el trozo del subject o del main que obliga a escribir esa línea, y el por qué.

py_twist_sequence.py
CódigoSubjectPor qué
def twist_sequence(arr: list[int], k: int) -> list[int]:def twist_sequence(arr: list[int], k: int) -> list[int]:Firma del subject.
if not arr:twist_sequence([], 3) => []Lista vacía: nada que rotar. Además evita el % 0 de la línea siguiente.
return []Vacía.
k %= len(arr)twist_sequence([1,2,3], 5) => [2,3,1]Rotar len veces es no hacer nada: reduzco k al rango 0..len-1. Así 5 sobre 3 elementos pasa a ser 2.
return arr[-k:] + arr[:-k] if k else list(arr)the last k elements move to the frontLos últimos k delante y el resto detrás. El if k es porque arr[-0:] es toda la lista, no cero elementos. Devuelvo copia, nunca arr mismo.