py_constellation_mapper · Python
▶ Aprender py_constellation_mapper (Python) paso a paso · explicación de py_constellation_mapper
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_constellation_mapper.py
| Código | Subject | Por qué |
|---|---|---|
def constellation_mapper(stars: list[tuple[int, int]], dim: int) -> list[str]: | def constellation_mapper(stars: list[tuple[int, int]], dim: int) -> list[str]: | Firma del subject. |
grid = [["."] * dim for _ in range(dim)] | Stars are represented by '*' and empty spaces by '.' | Rejilla dim × dim de puntos, como listas de caracteres para poder escribir en una celda. La comprensión crea una fila nueva por iteración: [["."] * dim] * dim sería la misma fila repetida. |
for row, col in stars: | Take a list of star coordinates as tuples (row, col) | Cada estrella: fila, columna. En ese orden. |
if 0 <= row < dim and 0 <= col < dim: | Ignore coordinates outside the grid boundaries | Fuera de la rejilla: la ignoro. Sin esto, un índice negativo escribiría por el otro extremo y uno grande daría IndexError. |
grid[row][col] = "*" | Handle duplicate coordinates (star appears only once) | Pinto. Pintar dos veces la misma celda deja un solo *: los duplicados se resuelven solos. |
return ["".join(line) for line in grid] | Return a list of strings representing the grid | Cada fila de caracteres a string. |