5 · Strings: slicing, métodos y f-strings
Indexación, slicing con paso, los diez métodos que usarás a diario y los format specs de f-strings para logs de entrenamiento.
Los strings son secuencias inmutables — cada método devuelve un string *nuevo*, nunca modifica el original.
Sin esto:
Sin un buen manejo de strings, leer un encabezado CSV, loguear una métrica de entrenamiento o parsear un archivo de configuración de modelo se convierte en código frágil.
Un string de Python es una secuencia inmutable de caracteres Unicode. Puedes indexarlo como una lista, hacerle slicing, iterarlo y llamar métodos — pero no puedes cambiar un carácter in-place. Toda operación que 'transforma' un string crea uno nuevo en secreto.
Python (in browser)
Los índices negativos cuentan desde el final. El slice `s[a:b]` es semiabierto: incluye el índice `a` pero excluye `b`.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
`.split()` sin argumento divide en cualquier secuencia de espacios y descarta tokens vacíos — útil para líneas de log desordenadas.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Estos format specs son los que usan los ciclos de entrenamiento reales. `loss:.4f` es el más común con diferencia.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
¿Qué devuelve `'hello world'.split()` comparado con `'hello world'.split(',')`?
Aplica lo que acabas de aprender: strip, mayúsculas, contar palabras y revertir un string — todo en el Arena.
- Los strings son inmutables — llama `.strip()`, `.lower()`, `.replace()` pero siempre captura el valor de retorno.
- `s[start:stop:step]` es el slice general; `s[::-1]` revierte; los índices negativos cuentan desde el final.
- Los format specs de f-string (`:.4f`, `:3d`, `:>10`, `:,`) convierten números crudos en logs de entrenamiento legibles.
Los pipelines de NLP llaman `.lower().strip()` sobre cada texto crudo antes de tokenizar. Los encabezados CSV usan `.split(',')` para extraer nombres de columna. Los logs de entrenamiento usan `f"epoch={e:3d} loss={l:.4f}"` para que las métricas se alineen visualmente entre épocas y sean fáciles de filtrar con `grep`.
Si lo quitas: Un label como `' Dog '` (con espacios) falla al buscarlo en un diccionario como `'Dog'` — las muestras mal etiquetadas desaparecen silenciosamente de tu set de entrenamiento sin ningún mensaje de error.