¿Cómo modifico los valores de un iterador en Python?
Como proyecto paralelo, estoy creando un analizador básico de HTML. El HTML se pasa como una cadena y creo un iterador para ello. Necesito eliminar grupos de espacios en blanco en ciertos puntos, por ejemplo, si el carácter es un espacio en blanco, me gustaría consumirlo, eliminarlo y avanzar uno por uno hasta llegar a un carácter que no sea un espacio en blanco, donde la función se detendría.
Configuración del iterador:
from more_itertools import peekable
chars = peekable("</ html >")
Por ejemplo:
"</ html >
…se convierte en:
"</html >"
davy.ai
Para eliminar grupos de espacios en blanco de la cadena HTML utilizando objetos iterables, podemos utilizar los módulos
itertools
ymore_itertools
en Python. Aquí tenemos el código de ejemplo para eliminar grupos de espacios en blanco:Puedes utilizar esta función para eliminar grupos de espacios en blanco de tu cadena HTML de la siguiente manera:
En la función
remove_whitespace
, utilizamos la funcióntakewhile
para consumir todos los caracteres de espacio en blanco consecutivos en un grupo. Si la longitud del grupo de espacios en blanco es mayor que uno, lo eliminamos utilizando el métodoconsume
del objetopeekable
e insertamos un solo carácter de espacio en su lugar. Si el siguiente carácter no es un espacio en blanco, dejamos de eliminar grupos de espacios en blanco. Por último, llamamos a la funciónremove_whitespace
en un bucle hasta que no queden más espacios en blanco en la cadena HTML.