python中的笛卡爾乘積

在領釦刷題的過程中遇到需要使用笛卡爾積的解法,因爲使用的是python3版本解決,所以在python版本中提供了一個庫函數可以模擬笛卡爾乘積的元素組成過程:itertools.product,一般來說比較常使用的是在product方法中傳遞進A與B兩個可迭代的對象進行組合,官方提供的解釋如下:https://docs.python.org/zh-cn/3.8/library/itertools.html#itertools.product

# product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
# product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111

上面的例子很好地解釋了這個函數的常見用法,其實本質上來說是兩個for循環的嵌套

依次取出A與B中的每一個元素組成元組返回,代碼如下:

import itertools

if __name__ == '__main__':
     l1 = [1, 2, 3]
     l2 = ["a", "b", "c"]
     for cur in itertools.product(l1, l2):
         print(cur, end=" ")

(1, 'a') (1, 'b') (1, 'c') (2, 'a') (2, 'b') (2, 'c') (3, 'a') (3, 'b') (3, 'c') 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章