將列表分成大約相等長度的部分
在Python中,內建函數區塊(在程式碼片段中提供)可以將列表拆解分為指定大小的區塊。但是,如果清單不能被所需的區塊大小整除,則會導致區塊大小不均勻。
要建立大致相等的部分,您可以使用列表產生器:
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) 。然後它從清單中產生區塊,從索引 i*k 開始,到索引 (i 1)*k 結束。這可確保前 m 個區塊包含其餘部分中的附加元素,從而產生大小大致相等的部分。
範例:
>>> list(split(range(11), 3)) [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]
在此範例中,清單範圍 (11) 被分成三部分,產生大小為 4、4 和 3 的區塊。
以上是如何在Python中將列表分成大致相等的部分?的詳細內容。更多資訊請關注PHP中文網其他相關文章!