使用區塊在Python 中高效迭代迭代器
處理大型資料集時,有必要以較小的批次或區塊處理數據。這有助於管理記憶體使用並提高效能。實現此目的的一種方法是使用 Python 的迭代器將資料分割成所需大小的區塊。
石斑魚配方
在 itertools 文件中,grouper() Recipe 提供了一種將資料分組為固定長度區塊的便捷方法。但是,它可能無法根據需要處理不完整的區塊。
批次配方
itertools 配方的最新添加是 batched() 函數。它擅長將資料批次為指定長度的元組。與 grouper() 不同,batched() 明確處理不完整的區塊,傳回較短的批次,沒有異常或填滿值。
特定於序列的解決方案
如果您正在工作僅使用序列,您可以使用更簡單的方法:
此解決方案保留了原始序列的類型和優雅地處理最後一個區塊。
Python 3.12 和 itertools.batched
在 Python 3.12 及更高版本中,可以直接使用 itertools.batched。它提供與batched() 方法相同的功能:
結論
選擇合適的方法取決於您的特定需求和您所使用的Python 版本使用。對於一般且靈活的批次,建議使用batched()方法或Python 3.12的itertools.batched。對於特定於序列的任務,基於序列的解決方案提供了簡單性和類型保留。
以上是如何在 Python 中使用區塊高效地迭代大型資料集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!