用Python计算笛卡尔积

用Python计算笛卡尔积计算多个集合的笛卡尔积,有规律可循,算法和代码也不难,但是很多语言都没有提供直接计算笛卡尔积的方法,需要自己写大段大段的代码计算笛卡尔积,python提供了一种最简单的计算笛卡称积的方法(只需要一行代码),详见下面的代码:#!/usr/bin/python3#-*-coding:utf-8-*-#@file:Cartesian.py#@author:shlian#…

大家好,又见面了,我是你们的朋友全栈君。

计算多个集合的笛卡尔积,有规律可循,算法和代码也不难,但是很多语言都没有提供直接计算笛卡尔积的方法,需要自己写大段大段的代码计算笛卡尔积,python提供了一种最简单的计算笛卡称积的方法(只需要一行代码),详见下面的代码:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @file   : Cartesian.py
# @author : shlian
# @date   : 2018/5/29
# @version: 1.0
# @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()

计算的结果如下:

(1, 5, 9)
(1, 5, 10)
(1, 5, 11)
(1, 5, 12)
(1, 6, 9)
(1, 6, 10)
(1, 6, 11)
(1, 6, 12)
(1, 7, 9)
(1, 7, 10)
(1, 7, 11)
(1, 7, 12)
(1, 8, 9)
(1, 8, 10)
(1, 8, 11)
(1, 8, 12)
(2, 5, 9)
(2, 5, 10)
(2, 5, 11)
(2, 5, 12)
(2, 6, 9)
(2, 6, 10)
(2, 6, 11)
(2, 6, 12)
(2, 7, 9)
(2, 7, 10)
(2, 7, 11)
(2, 7, 12)
(2, 8, 9)
(2, 8, 10)
(2, 8, 11)
(2, 8, 12)
(3, 5, 9)
(3, 5, 10)
(3, 5, 11)
(3, 5, 12)
(3, 6, 9)
(3, 6, 10)
(3, 6, 11)
(3, 6, 12)
(3, 7, 9)
(3, 7, 10)
(3, 7, 11)
(3, 7, 12)
(3, 8, 9)
(3, 8, 10)
(3, 8, 11)
(3, 8, 12)
(4, 5, 9)
(4, 5, 10)
(4, 5, 11)
(4, 5, 12)
(4, 6, 9)
(4, 6, 10)
(4, 6, 11)
(4, 6, 12)
(4, 7, 9)
(4, 7, 10)
(4, 7, 11)
(4, 7, 12)
(4, 8, 9)
(4, 8, 10)
(4, 8, 11)
(4, 8, 12)

所以,使用python有的时候还是很方便的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157525.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kotlin 使用viewStub

    kotlin 使用viewStubViewStub是一个轻量级的的View,继承于ViewGroup,没有任何尺寸,不绘制任何东西,因此绘制或者移除时更省时。(ViewStub不可见,大小为0)优点实现View的延迟加载,避免资源的浪费,减少渲染时间,在需要的时候才加载View缺点ViewStub所要替代的layout文件中不能有标签 ViewStub在加载完后会被移除,或者说是被加载进来的layout替换掉了…

    2022年6月28日
    35
  • OpenCV-利用其它widthStep方法把interest——img的所有像素值增加200

    OpenCV-利用其它widthStep方法把interest——img的所有像素值增加2001:代码如下:#include”stdafx.h”#include”highgui.h”#include”cv.h”#include”iostream”usingnamespacestd;intmain(){IplImage*interest_img=cvLoadImage(“C:\\horse.jpg”);cvNamedWindow(“inte

    2022年5月26日
    34
  • jenkins安装和简单配置

    jenkins安装和简单配置

    2020年11月19日
    173
  • Java常用代码_计算机植入木马程序

    Java常用代码_计算机植入木马程序1.字符串有整型的相互转换Stringa=String.valueOf(2);//integertonumericstringinti=Integer.parseInt(a);//numericstringtoanint2.向文件末尾添加内容BufferedWriterout=null;try{out=newBu…

    2025年6月12日
    18
  • 剑指Offer面试题:4.从尾到头打印链表建议收藏

    一题目:从尾到头打印链表代码实现采用两种方法实现:(1)不修改原列表,使用stack的方式实现(2)修改原列表,对元列表逆序两种方法都在下面的代码中:

    2021年12月19日
    37
  • 虚拟机搭建web服务器

    虚拟机搭建web服务器虚拟机搭建web服务器描述:把主机的项目部署到虚拟机Linux系统下,并且可以在主机上访问得到一、首先下载虚拟机链接:https://blog.csdn.net/felix__h/article/details/82853501二、下载Linux镜像文件链接:https://pan.baidu.com/s/12vA9yELUWV_nRNDHJaOmWw密码:a1yz三、打开下载好的…

    2022年5月27日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号