首頁 > 後端開發 > Python教學 > 如何在 Python 中使用 zip(*[iter(s)]*n) 將列表拆分為相等的區塊?

如何在 Python 中使用 zip(*[iter(s)]*n) 將列表拆分為相等的區塊?

Mary-Kate Olsen
發布: 2024-11-20 13:03:21
原創
442 人瀏覽過

How to Split a List into Equal Chunks Using zip(*[iter(s)]*n) in Python?

在Python 中將可迭代物件壓縮為區塊

在Python 中,zip([iter(s)]n)函數可讓您將清單拆分為長度相等的區塊。它的工作原理如下:

解釋:

  1. iter(s):這會在輸入清單 s 上建立一個迭代器。
  2. [ iter(s)]*n:這會建立一個包含 n 個迭代器的列表,每個迭代器都迭代同一個列表 s。
  3. zip(*[iter(s)]*n):

    • * 將迭代器列表解壓縮為 zip() 函數的各個參數。
    • zip() 接受一系列迭代器並將它們的元素組合成元組。

等效詳細程式碼:

要了解 zip(*[iter(s)]*n)的內部運作原理,讓我們寫出等效程式碼更詳細的語法:

s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3

# Create iterators for the list
iter1 = iter(s)
iter2 = iter(s)
iter3 = iter(s)

# Zip the iterators to create chunks
chunks = zip(iter1, iter2, iter3)

# Convert the generator to a list
list_chunks = list(chunks)
登入後複製

在此詳細版本中:

  1. 我們為同一個list 建立三個迭代器。
  2. 我們將這些迭代器傳遞給 zip( )使用解包。
  3. 產生的生成器表達式將轉換為列表以產生區塊。

輸出:

的輸出原始程式碼和詳細程式碼都是相同的:

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
登入後複製

這示範了zip(* [iter(s)]*n) 如何利用迭代器和zip 函數方便地將列表拆分為區塊。

以上是如何在 Python 中使用 zip(*[iter(s)]*n) 將列表拆分為相等的區塊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板