首頁 > 後端開發 > Python教學 > Python 中 `zip([iter(s)]*n)` 如何對列表進行分塊?

Python 中 `zip([iter(s)]*n)` 如何對列表進行分塊?

DDD
發布: 2024-11-24 22:26:15
原創
707 人瀏覽過

How does `zip([iter(s)]*n)` Chunk a List in Python?

用於分塊清單的Zip:了解zip([iter(s)]n)

The🎜>n)

The🎜>The zip() function 是Python 中的一個強大工具,它將多個可迭代物件中的元素組合成元組清單。它的用途擴展到各種應用程序,包括將列表分割成大小相等的區塊。表達式 zip(

[iter(s)]

n) 是實現此目的的簡潔方法。
  • 要了解此表達式的工作原理,讓我們將其分解為多個組件:
  • iter(s): 這會在list 上建立一個迭代器,允許我們單步遍歷它的元素一個接一個。
  • [iter(s)]*n: 此行建立一個包含 n 個迭代器副本的列表,有效地為同一列表提供 n 個視圖。
*:

星號(或splat)運算子將迭代器列表解包為單獨的參數zip().

因此,使用n 個迭代器呼叫zip(),每個迭代器代表相同的列表。這會導致 zip() 從每個迭代器中提取一個元素,建立一個元組。這個過程一直持續到所有迭代器都用完為止,產生一個元組列表。

為了說明這一點,讓我們考慮一個列表 s = [1,2,3,4,5,6,7,8 ,9] 且 n = 3。表達式zip(

[iter(s)]

n) 將產生[(1,2,3),(4,5,6),(7,8,9)].
x = iter(s)
y = iter(s)
z = iter(s)
chunked_list = list(zip(x, y, z))
登入後複製

如果我們將表達式擴展為​​更詳細的程式碼,它將如下所示:

此程式碼產生與簡潔表達式zip([iter(s)]n) 相同的結果。本質上,iter() 建立一個迭代器,[iter(s)]*n 產生多個視圖到同一個列表中,splat 運算子解壓縮迭代器,使zip() 能夠將每個視圖中的元素組合成元組。

以上是Python 中 `zip([iter(s)]*n)` 如何對列表進行分塊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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