很多语言都没有提供直接计算笛卡尔积的方法,需要自己写大段大段的代码计算笛卡尔积
python 提供了一种最简单的计算笛卡称积的方法:itertools
以下是代码:
#!/usr/bin/python3 # -*- coding: utf-8 -*-
# @desc : 用python实现求笛卡尔积
import itertools
class cartesian(object): def __init__(self): self._data_list=[]
def add_data(self,data=[]): #添加生成笛卡尔积的数据列表 self._data_list.append(data)
def build(self): #计算笛卡尔积 for item in itertools.product(*self._data_list): print(item)
if __name__=="__main__": car=cartesian() car.add_data([1,2,3,4]) car.add_data([5,6,7,8]) car.add_data([9,10,11,12]) car.build()