Construir un string grande con s += piece en un bucle no se recomienda porque…
Opciones
- Los strings son mutables, así que pueden corromperse en un bucle
- Puede ser cuadrático, ya que cada
+=puede copiar todo el string (Opción correcta) - Lanza un MemoryError cuando el string supera 1 MB
- Se exigen f-strings para cualquier string de más de una línea
Respuesta
Puede ser cuadrático porque cada += puede copiar todo el string
Por qué
Los strings no se pueden cambiar (son inmutables). Así que s += piece crea un string nuevo y copia todos los caracteres antiguos cada vez.
Con muchas piezas esto se vuelve muy lento (el tiempo crece con el cuadrado del tamaño).
Reúne las piezas en una lista y únelas una sola vez al final.
parts = []
for row in rows:
parts.append(str(row))
text = "".join(parts)Recuerda
Construye strings grandes con "".join(lista).