IniziaInizia gratis

Definire una funzione per suddividere in blocchi

Per poter eseguire upsert in batch in modo riproducibile, devi definire una funzione che suddivida la tua lista di vettori in blocchi.

Il modulo standard itertools è già stato importato per te.

Questo esercizio fa parte del corso

Database vettoriali per Embeddings con Pinecone

Visualizza il corso

Istruzioni dell'esercizio

  • Converte l'input iterable in un iteratore.
  • Suddividi it in blocchi di dimensione batch_size usando il modulo itertools.
  • Emetti (yield) il blocco corrente.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

def chunks(iterable, batch_size=100):
    """A helper function to break an iterable into chunks of size batch_size."""
    # Convert the iterable into an iterator
    it = ____
    # Slice the iterator into chunks of size batch_size
    chunk = tuple(itertools.____(it, ____))
    while chunk:
        # Yield the chunk
        ____
        chunk = tuple(itertools.islice(it, batch_size))
Modifica ed esegui il codice