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

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

Susan Sarandon
Susan Sarandon原創
2025-01-04 12:23:38331瀏覽

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中文網其他相關文章!

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