【Python】求笛卡尔乘积

来源:互联网 发布:做快递怎么找淘宝客户 编辑:程序博客网 时间:2024/04/29 17:02

在数学中,两个集合X和Y的笛卡尓乘积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0), (a,1), (a,2), (b,0), (b,1), (b, 2)}。有时我们需要在python求两个list的笛卡尔乘积,其实很简单,一行代码搞定。

例如,求a={1,2,3}与b={0,1,2}的笛卡尔乘积,与a={1,2,3}自身的笛卡尔乘积,python代码如下:

#-*-coding:utf-8-*-import itertools;a=[1,2,3];b=[4,5,6];print "a,b的笛卡尔乘积:",for x in itertools.product(a,b):    print x,print;print "a自身的笛卡尔乘积:", for x in itertools.product(a,a):    print x,
运行结果如下:


值得注意的是,这里的itertools并不是什么我自己引入的工具,是一个python的标准库,直接引入就可以使用了。

就像C语言的<math.h>头文件一个道理。

0 0
原创粉丝点击