python中的笛卡爾乘積

2021-10-07 12:28:08 字數 655 閱讀 8108

在領扣刷題的過程中遇到需要使用笛卡爾積的解法,因為使用的是python3版本解決,所以在python版本中提供了乙個庫函式可以模擬笛卡爾乘積的元素組成過程:itertools.product,一般來說比較常使用的是在product方法中傳遞進a與b兩個可迭代的物件進行組合,官方提供的解釋如下:

# 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') 

笛卡爾乘積

笛卡爾 descartes 乘積又叫直積。假設集合a 集合b 則兩個集合的笛卡爾積為。可以擴充套件到多個集合的情況。類似的例子有,如果a表示某學校學生的集合,b表示該學校所有課程的集合,則a與b的笛卡爾積表示所有可能的選課情況。目錄名稱定義 序偶定義 笛卡爾積定義 推導過程 案例 序偶與笛卡爾積 定...

Python實現求笛卡爾乘積的方法

在數學中,兩個集合x和y的笛卡尓乘積 cartesian product 又稱直積,表示為x y,第乙個物件是x的成員而第二個物件是y的所有可能有序對的其中乙個成員。假設集合a 集合b 則兩個集合的笛卡爾積為。有時我們需要在python求兩個list的笛卡爾乘積,其實很簡單,一行 搞定。例如,求a ...

Python實現求笛卡爾乘積的方法

在數學中,兩個集合x和y的笛卡尓乘積 cartesian product 又稱直積,表示為x y,第乙個物件是x的成員而第二個物件是y的所有可能有序對的其中乙個成員。假設集合a 集合b 則兩個集合的笛卡爾積為。有時我們需要在python求兩個list的笛卡爾乘積,其實很簡單,一行 搞定。例如,求a ...