用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基类和派生类

    基类和派生类1.什么是基类?在面向对象设计中,被定义为包含所有实体共性的class类型,被称为“基类”。-百度百科简单理解,即父类(相对派生类)2.什么是派生类?利用继承机制,新的类可以从已有的类中派生。

    2022年8月4日
    6
  • pycharm代码自动提示_pycharm自动整理代码

    pycharm代码自动提示_pycharm自动整理代码那什么,,,,,,是这样的,请先确保你的代码补全功能是打开的。打开操作方式是:file—->powersavemode,把这个前面的√号去掉即可。然后,代码在提示的时候,多打几个字,发现你想要的已经在最上面的时候按tab键即可补全

    2022年8月25日
    8
  • linux 复制文件夹内所有文件到另一个文件夹

    linux 复制文件夹内所有文件到另一个文件夹cp-Rf/home/user1/*/root/temp/将/home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身。即格式为:cp-Rf原路径/目的路径/

    2022年8月23日
    6
  • 文件名太长无法删除怎么办

    文件名太长无法删除怎么办

    2021年10月24日
    48
  • SQL 清空表数据的方法

    SQL 清空表数据的方法truncatetabletablenamedeletefromtablenamedelete方法最大的问题,当有标志字段时就有问题一般建議盡可能使用delete去刪除表的字段,它具有選擇性刪除的作用,所以常常deletefromtablenamewhere條件delete和truncate作用其實是一樣的,隻是truncate后面不跟where條件句,它的作用是刪除表中所有的行(記錄)兩者最大的區別就是delete是寫日誌文件的,而truncate則不寫日誌直接刪除

    2022年6月5日
    59
  • Qt中QTableView设置分页显示的三种方法[通俗易懂]

    1、已知所有数据的情况下,以MVC模式对数据进行分页处理:参考链接:http://www.cnblogs.com/caomingongli/archive/2011/11/17/2252745.html参考链接:https://blog.csdn.net/xujiali5172923/article/details/478352652、数据库很大的时候,QTableView会自动生…

    2022年4月12日
    677

发表回复

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

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