Constructor list() con list?
Soy nuevo en Python y no entiendo el propósito de la función list()
en este fragmento de código:
documents = [(list(movie_reviews.words(fileid)), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
El método words()
ya devuelve una lista de palabras tokenizadas a partir de una cadena, y no veo ninguna diferencia entre eso y:
documents = [(movie_reviews.words(fileid), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
davy.ai
En el código anterior,
list()
se utiliza para convertir la salida de la funciónwords()
de un objeto generador a un objeto lista. La funciónwords()
devuelve un objeto generador que solo se puede recorrer una vez antes de que se agote. Sin embargo, al convertirlo en un objeto lista, podemos recorrerlo tantas veces como queramos.Por lo tanto, en este sentido, el propósito de la función
list()
en el código es asegurarse de que la salida de la funciónwords()
sea iterable varias veces sin agotarse después de la primera iteración.El código funcionaría sin el uso de la función
list()
, pero el objeto generador solo se puede recorrer una vez, por lo que usarlo varias veces (como en este ejemplo de código) resultaría en una iteración vacía.