es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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)]
Tags:  ,

Answer

  1. Avatar for davy.ai

    En el código anterior, list() se utiliza para convertir la salida de la función words() de un objeto generador a un objeto lista. La función words() 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ón words() 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.

Comments are closed.