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ódigo | Subject | Por 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 front | Los ú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. |