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

如何在Python中高效產生多個列表的笛卡爾積?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-24 16:55:21110瀏覽

How Can I Efficiently Generate Cartesian Products of Multiple Lists in Python?

從多個清單產生笛卡爾積

取得多個清單的笛卡爾積(其中產生每個可能的值組合)是一種常見的方法程式設計中的任務。使用 itertools.product(自 Python 2.6 起提供的強大 Python 模組),您可以輕鬆實現此目標。

要使用 itertools.product,只需提供您希望組合為參數的清單即可。例如,給定以下一組清單:

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

您可以如下取得笛卡爾積:

import itertools

for element in itertools.product(*somelists):
    print(element)

此程式碼有效地從輸入清單產生所有可能的值組合。輸出將是:

(1, 'a', 4)
(1, 'a', 5)
(1, 'b', 4)
(1, 'b', 5)
(2, 'a', 4)
(2, 'a', 5)
...

或者,如果列表作為單獨的參數明確傳遞,則程式碼將如下所示:

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

透過利用itertools.product 的靈活性,您可以輕鬆處理輸入資料由巢狀清單或不同長度清單組成的複雜情況。

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

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