首頁 > 後端開發 > Python教學 > itertools.product 如何在 Python 中產生多個列表的笛卡爾積?

itertools.product 如何在 Python 中產生多個列表的笛卡爾積?

Susan Sarandon
發布: 2025-01-04 12:23:38
原創
329 人瀏覽過

How Can itertools.product Generate the Cartesian Product of Multiple Lists in Python?

使用itertools.product 的多個列表的笛卡爾積

獲取一組列表的笛卡爾積,其中每個可能的值組合產生後,利用內建的itertools.product 函數。此功能自版本 2.6 起已包含在 Python 中。

實作:

import itertools

somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]

for element in itertools.product(*somelists):
    print(element)
登入後複製

或者,您可以向函數提供單獨的參數,如下所示:

for element in itertools.product([1, 2, 3], ['a', 'b'], [4, 5]):
    print(element)
登入後複製

兩種方法都會產生相同的結果輸出:

(1, 'a', 4)
(1, 'a', 5)
(1, 'b', 4)
(1, 'b', 5)
(2, 'a', 4)
(2, 'a', 5)
...
登入後複製

注意:

  • 此技術通常用於避免深度嵌>此技術通常用於避免深度嵌>此技術通常用於避免深度嵌>此技術通常用於避免深度嵌>此技術通常用於避免深度嵌入物套循環。
  • 如果您需要笛卡爾同一列表乘以自身的乘積,請考慮使用itertools.product 並使用解壓縮的參數*.
  • 在此上下文中使用* 來解包參數與其在函數呼叫中的典型用法沒有什麼不同。

以上是itertools.product 如何在 Python 中產生多個列表的笛卡爾積?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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