首頁 >後端開發 >Python教學 >如何在 Python 中將列表分成幾乎相等的部分?

如何在 Python 中將列表分成幾乎相等的部分?

Barbara Streisand
Barbara Streisand原創
2024-11-16 10:23:021020瀏覽

How to Divide a List into Nearly Equal Parts in Python?

將清單分成幾乎相等的部分

將清單分成相等的部分是程式設計中的常見任務。 Python 中的內建 chunks() 方法提供了一種將清單拆分為大小相等的區塊的方法,但是如果您想將清單分成大致相等的部分怎麼辦?

實現此目的的一種方法是使用清單產生器:

def split(a, n):
    k, m = divmod(len(a), n)
    return (a[i*k+min(i, m):(i+1)*k+min(i+1, m)] for i in range(n))

其工作原理如下:

  • k 是每個清單中的項目數部分,m 是列表長度除以n 的餘數。
  • for 循環迭代所需數量的部分 n。
  • 對於每個部分,它計算起始索引和結束索引基於 k、m 和當前迭代 i。
  • 切片a[start:end] 擷取目前迭代的元素

範例:

>>> list(split(range(11), 3))
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]

此程式碼將長度為11 的清單分割為3個部分,分別產生4、4 和3 個元素的部分。

以上是如何在 Python 中將列表分成幾乎相等的部分?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn