笛卡尔积
1个回答
展开全部
首先知道啥是笛卡尔积,百度百科中解释是这样的:
通俗理解就是一个集合中的所有元素与另外一个集合中的所有元素的所有组合。需要注意有先后顺序。
举个例子:
集合A={a,b}, B={0,1,2},则
A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}
B×A={(0, a), (0, b), (1, a), (1, b), (2, a), (2, b)}
再如:
集合A是所有声母,集合B是所有韵母。那么集合A与集合B的笛卡尔积就是所有的拼音组合。
python默认迭代器库 itertools 提供笛卡尔积计算函数 product 。
用法:
示例1:
计算姓氏“张、李”和名“一、二、三”所有搭配组合。
示例2:
当然不仅仅是两个集合,多个集合也同样可以。
比如字典的生成。
当然如果字典生成不需要有序的话,可以使用另外两个函数 permutations
和 combinations 。
两者的区别在于,如果几个集合的元素相同,但位置顺序不同,permutations记为不同集,而combinations记为同一集合,也就是permutations为有序集合combinations为无序集合。
通俗理解就是一个集合中的所有元素与另外一个集合中的所有元素的所有组合。需要注意有先后顺序。
举个例子:
集合A={a,b}, B={0,1,2},则
A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}
B×A={(0, a), (0, b), (1, a), (1, b), (2, a), (2, b)}
再如:
集合A是所有声母,集合B是所有韵母。那么集合A与集合B的笛卡尔积就是所有的拼音组合。
python默认迭代器库 itertools 提供笛卡尔积计算函数 product 。
用法:
示例1:
计算姓氏“张、李”和名“一、二、三”所有搭配组合。
示例2:
当然不仅仅是两个集合,多个集合也同样可以。
比如字典的生成。
当然如果字典生成不需要有序的话,可以使用另外两个函数 permutations
和 combinations 。
两者的区别在于,如果几个集合的元素相同,但位置顺序不同,permutations记为不同集,而combinations记为同一集合,也就是permutations为有序集合combinations为无序集合。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询