自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 政务数据治理的十大误区或问题

本文基于实际项目实施过程总结经验,分析研究政务数据治理领域存在的普遍性问题,期望通过分析相关问题解决方法,有效提升数据治理水平。

2024-07-13 17:46:04 1155 1

原创 数据管理70个名词解析

指数据的来源,也是数据产生和生成的源头。数据源包括内部数据源和外部数据源两大部分内部数据源根据产生来源的不同又可以分成两类,其中一类是业务操作中采集的原始数据,也称基础数据(是指企业运营活动中产生的原始数据,或者进行过简单的清洗处理,但不通过计算得到的数据):另一类是基于业务规则对原始数据加工后生成的结果数据,也称衍生数据。数据资产管理 是指对数据资产进行规划、控制和提供的一组活动职能,包括开发、执行和监督有关数据的计划、政策、方案、项目、流程、方法和程序,从而控制、保护、交付和提高数据资产的价值。

2023-11-16 00:48:00 1196

原创 数据治理相关名词解析

数据治理相关名词解析

2023-08-08 07:16:00 2134

原创 我们真的是在做数据治理吗

数据治理、数据管理相关定义的讨论

2023-08-08 06:24:19 538

原创 Python列表的+=、=和extend有啥区别

列表的+=、= 与list.extend()对比,既相同,又有所不同1、从结果来看,它们实现的功能都是一样的,都能将一个列表整体添加到另一个列表In [1]: a = [1, 2]In [2]: a.extend([3, 4])In [3]: aOut[3]: [1, 2, 3, 4]In [4]: a += [3, 4]In [5]: aOut[5]: [1, 2, 3, 4, 3, 4]In [6]: a = a + [6, 7]In [7]: aOut[7]: [1,

2022-03-25 02:28:09 2654 1

原创 子网划分和子网掩码相关计算

本文主要列举几道子网掩码相关题目的计算关于子网掩码相关解释,目前查到维基百科的解释相对比较完整:头条搜索:子网掩码1、根据主机数量,计算掩码:用户有800台电脑,从192.168.0.0这个网段划分,掩码是多少?解答:9<log2(800)<10,所以主机位占10位,掩码位数:32-10=22。该IP应表示为:192.168.0.0/22,代表IP的前22位为网络号,后面10位为主机号子网掩码为:11111111.11111111.11111100.00000000,转二进制为:

2022-03-08 18:39:31 7699

原创 质数相关算法:质数相关数学知识和常见题目求解

质数求解常用的数学相关知识:一、什么是质数?什么是合数?什么是质因子(自己百度)1、质数也叫素数,只能被1和自己整除,例如 2和3。2、整数1不是质数。3、合数除了能被1和自己整除之外,还能被其他小于自己的整数整除,例如:4 =2*2。4、对于一个整数n,可以分解为2个以上的整数相乘,分解出来的整数称为n的因子,其中为质数的,称为质数因子,也叫质因子,合数的称为合数因子。二、因式分解的常识对整数number进行因式分解时,如果我们分解出一个小于根号number的因子,必然会有一个大于根号num

2022-02-17 17:44:33 677

原创 质数相关算法:求整数n的所有质因子

题目描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )最后一个数后面也要有空格数据范围: 1≤n≤2×10**9+14输入描述:输入一个long型整数输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。示例1输入:180输出:2 2 3 3 5整数质因子的核心判断:1、能被该整数整除;2、是质数(素数)思路一:1、先找出该整数下的所有质数,再逐一判断是否能被该整数整除,

2022-02-17 17:37:03 4365

原创 质数相关算法:统计小于整数n的质数个数

问题:现给定一个大于1的整数 N,求出小于N 的质数的个数。例如:输入 10输出:4(2,3,5,7)输入:20输出: 8(2,3,5,7,11,13,17,19)以下介绍5种算法,前3种思路一致,主要是效率的差异;第5种采用了埃拉托斯特尼筛法进行计算(比较巧妙)算法1:针对小于N的每个正整数x,我们可以遍历从2到x-1遍历去试除,当出现一个数能被整除,那这个数就不是质数;当然这种方法也是最容易想到的方法,但效率也是最低的方法;代码如下:def prime(n): m = 0

2022-02-17 17:31:22 1089

原创 质数相关算法:判断是否为质数的方法

1、试除法:根据定义循环判断该数除以比他小的每个自然数(大于1),如果有能被他整除的就不是质数。缺点:如果只用试除法,时间复杂度较大,为n# 判断一个数是不是素数# 算法1:时间复杂度较大,为ndef is_prime1(num): '''循环遍历小于该数的所有整数,除了1和它本身之外,如果有其他数能被它整除,它就不是质数''' if num <= 1: return False for i in range(2, num): if n

2022-02-17 17:19:05 1027

原创 3、Py进制转换:十进制转任意进制数(自定义函数)

一、python自带函数bin()、oct()、hex()局限性:只能将10进制转成2、8、16进制,无法实现转成其他进制数。将十进制decimal system转换成二进制binary systemprint(bin(10))将十进制decimal system转换成八进制Octalprint(oct(10))将十进制decimal system转换成十六进制Hexadecimalprint(hex(10))二、自定义函数,实现十进制转任意进制数假设有这么一道题:请写出一个能将任

2022-02-12 15:30:46 5921

原创 2、Py进制转换:荣耀机试题,任意2-64进制转10进制(自定义函数转换)

荣耀机试题中的进制转换问题,2-64进制数转10进制

2022-02-12 15:23:00 954

原创 1、Py进制转换:自带int()对象实现任意2-36进制数转10进制

python,其他进制数转10进制数

2022-02-12 15:14:51 2183

原创 7.2、堆排序的代码分析(算法基础—排序算法)

上一篇:7.1、堆排序的逻辑分析(算法基础—排序算法)经过上一篇逻辑分析,我们已经知道了堆排序的核心就是解决2个问题:1、堆的一次向下调整2、构建堆但是如果我们仔细看下图,会发现,其实构建堆的过程,就是多次完成“堆的一次向下调整”,只不过这个过程中,要按什么顺序去先后调整各个子树,是个需要考虑的问题。一、构造堆应该以什么顺序去调整子树我们直接看每一步需要调整的子树的根节点:第一步的根节点:3第二步的根节点:14第三步的根节点:13第四步的根节点:9第五步的根节点:5上面这个树结构

2021-11-06 00:16:09 491 2

原创 7.1、堆排序的逻辑分析(算法基础—排序算法)

堆是一个特殊的二叉树,所以学习堆排序之前,必须先了解一些关于树的基础知识:一、堆排序基础知识(树)树是一种数据结构,就像一棵倒置的树。计算机中的文件目录就类似于树结构,一个文件夹里面可以有多个文件夹,每个文件夹分下去又可以有多个文件夹。树的根:上图的A就是树的根节点,每棵树只有一个根节点;树的节点:图中的A到Q都是树的节点;树的叶子节点:每个分支延伸到末端的都是树的叶子节点,例如图中的B、C、H、I、K、L、M、N、P、Q树的深度(高度):从根节点到叶子节点最长的路径,该路径上节点的总数就是树

2021-11-02 23:25:08 499

原创 6、排序Low-B三人组之插入排序(算法基础—排序算法)

1、插入排序逻辑类比插入排序的过程可以类比为:打扑克牌时摸完牌后按大小插入到手里的牌这个过程。最初有一堆无序的牌1、先从这堆无序的牌中,抽出一张,放到手里;2、再从无序牌中摸出一张(从无序列表的第二位开始遍历,按顺序取出元素),用个变量tmp存起来,然后拿手里的牌跟tmp做对比;3、拿手里牌的右边第一张牌(最大的牌)跟tmp对比,如果比tmp大的,就让右边第一张牌往前移动1位,继续拿手里牌右边第二张牌对比;4、如果没有的找到比tmp大的或者手里的牌都对比完了,就让tmp插入到这个位置2、图文解

2021-10-25 02:39:38 276

原创 5、排序Low-B三人组之选择排序(算法基础—排序算法)

选择排序逻辑:一趟排序记录最小的数,放到第一个位置再一趟排序记录记录列表无序区最小的数,放到第二个位置;算法关键点:有序区和无序区、无序区最小数的位置为什么叫选择排序因为这个过程中,我们是不断选出无序区的最小值,所以叫选择排序。选择排序写法1(较差的写法)逻辑:先创建一个新的空列表,每次从待排序的列表中拿出最小值,追加到新列表中,最后得到的新列表就是排好序的列表了。def select_sort_simple(li): new_li = [] for i in range(l

2021-10-24 23:34:04 2168

原创 4、排序Low-B三人组之冒泡排序(算法基础—排序算法)

冒泡排序逻辑:1、对于一个无序的列表,可以不断遍历它,对比相邻的2个数,如果左边的数比右边大,则交换2个数的位置,多次遍历后,小的数会不断被交换到前面,大的数会不断交换到后面,最后完成排序。2、假设列表有n个数字,最多也就是遍历n-1次,因为就算最小值排在第最后一位,它最多也只需要移动n-1次,就能排在第1位。为什么称为冒泡排序每一次遍历列表后,最大的数字都会被顶到最后面。如果我们把这个列表竖着放,这个过程看起来就是大的数字不断往上冒起来,所以称为冒泡排序。过程详解如下图所示:第1次遍历结果

2021-10-24 22:37:40 2091

原创 3、二分查找算法的3种写法(算法基础—查找算法)

二分查找:又叫折半查找,从有序列表的初始候选区li[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半。第一种简单写法:逻辑:通过取中间位置的值来对比,不断调整候选区的范围,匹配到则范围该直到如果最后匹配成功。由于left和right的值一直跟随mid一同变化,所以最后得到的mid值,是真正的位置def binary_search2(li, val): '''假设输入的是个升序的列表,获取中间位置的值跟要查找的值val作对比, 如果比val大,则取中间位置左边

2021-10-24 02:11:48 330

原创 2、顺序查找算法(算法基础—查找算法)

顺序查找:也叫线性查找,从列表第一个元素开始,顺序进行搜索,直到找到元素或搜索到列表最后一个元素为止。其实也就是遍历,很简单,没什么特别的,直接上代码,2种写法:写法1:def linear_search(li, val): for idx, v in enumerate(li): # 枚举函数,传入一个可迭代对象,返回依次迭代的下标和值,默认从0开始 if v == val: return idx returnli = ['1', '2

2021-10-24 01:50:43 407

原创 3种写法找出数据库两表数据的差异,及其优缺点

一、背景:工作中我们有时候需要比对两个表的数据差异,以oracle为例,通常我们会想到第一个方法是用minus,但其实不止有这种方法,并且minus做对比的时候,遇到特殊情况,会导致对比结果不够清晰明了。二、3种写法找出2表差异数据1、minus写法;2、full join写法;3、group by 写法;三、说一下两表数据对比的三种写法及其优缺点:1、minus写法:minus是求得差集,例如A minus B ,求的就是A表有的B表没有的数据。SELECT ID,

2021-10-23 16:37:22 14834 9

原创 2、双向链表的实现(数据结构py)

双向链表一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。代码实现:#!/usr/bin/env python# -*- coding:utf-8 -*-# date: 2021/10/13# filename: 2、双链表# author: kplinclass Node(object): """双向链表节点""" def __init__(

2021-10-21 01:02:28 151

原创 1、单链表的实现(数据结构py)

1、链表的定义链表(Linkedlist)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。2、单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。(1)表元素域elem用来存放具体的数据。(2)链接域next用来存放下一个节点的位置(python中的标识)(3)变量p指向链表

2021-10-21 00:33:02 225

原创 1、递归算法解决汉诺塔问题(算法基础)

1、递归算法的特点1、调用本身2、设置一个结束条件需要先将问题简单化,找到一个可以不断递推下去的规律2、问题背景:相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图1)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。3、问题:如何模拟这

2021-10-20 23:54:06 2814

原创 手写一个词云图生成器,可调形状,可调背景颜色,可调字体色系

词云图生成器今天有兴趣帮朋友做了一个词云图生成器,感觉还挺有意思的,放出来给大家玩玩。1、程序下载地址链接:https://pan.baidu.com/s/17IICPmFPbv2n0ad5XrsMhA提取码:yu6h–来自百度网盘超级会员V5的分享2、用处可修改词语、词频、图形、背景颜色、字体颜色,最后生成好看的一张词云图:3、使用方式:下载解压后文件夹是这样的3.1、程序运行:点击 词云图生成器.exe 即可。3.2、各文件夹和文件用处说明:1、background文件夹

2021-07-11 19:00:32 3200 1

原创 一个解析多重括号嵌套问题的简单算法

一、问题背景:最近在研究如何从复杂的SQL中解析来源表的问题,扩展到后面研究如何解析SQL的来源字段和字段别名问题,这两个问题都有一个核心问题要解决。以下面的解析来源字段和字段别名为例,无论用什么解析方法,最后都需要按逗号去分割字段,而在这里面,因为有子查询和函数,里面也会有逗号,所以最后会干扰到逗号分割的准确性。但是可以先用一个方法,把括号中的内容都整体识别出来,先用一些没有逗号的特定符号替换掉,再按逗号切割就可以避免这个问题了,最后再根据前面的替换规则,还原括号的内容即可。但这个按括号识别的过

2021-07-10 12:25:48 2075 1

原创 纯文本分析方法,从复杂的sql查询语句中提取所有来源表名

如何从复杂的sql查询语句中提取所有来源表名本文使用Python实现一、背景前段时间开发了一个小工具用来检测一些sql脚本,其中有一个步骤需要将查询语句的各个来源表都提取出来。本来借助数据库是可以实现的,但该方法有局限性。所以我一直在想,能不能通过纯文本分析的方法来解决这个问题。网上虽然能找到类似的解决方法,但基本都不是通用的脚本,只能解决某些句式,考虑的场景太少了,想要找到通用的脚本,只能靠自己写了。最后经过一番费力的分析拆解,终于写出来一个相对来说比较通用的脚本。二、题外话先说一下借助数据

2021-06-08 00:36:00 4432 3

原创 Python实现简单的excel对比工具

最近有小伙伴说需要一个工具,用来对比2个excel表的差异,直接标记出来有差异的行。代码倒还挺简单的,为了方便小白使用,我给它打包成exe文件,点击执行即可输出结果。1、先说一下怎么用,后面上代码链接:https://pan.baidu.com/s/1oNEeIDOnw1Grw2MOdJrwUQ提取码:w29l先到网盘链接,下载文件:如果不需要源代码,直接下载xlsx_compare.rar即可。解压后打开:这里面2个xlsx文件是我用来测试的文件,可以直接换成你自己的,必须是2个,不要放

2021-04-19 04:40:59 7101 12

原创 说说华为机试注意点以及三道题的解题思路

最近有机会尝试做了一下华为机试题,感觉整个过程还是挺有意思的,分享一下经历。前面说一下体验和注意点,后面附上题目和解题思路,本文使用python解题一、体验和一些注意点1、总体的感觉:难度比预想的小挺多,练习题有些很难的,涉及算法啥的,实际没有考到。做是能做出来的,最后一道题测试用例有些没通过,应该是场景考虑不够全面。2、题型:考试时长180分钟。三道应用编程题,生活中的问题,用程序解决。前两道各100分,第三道200分。前两道相对简单点,第三道可能会涉及到比较难的算法。可以自由选择编程语言,例

2021-04-09 06:25:44 34874 21

原创 配置python连接oracle,读取excel数据写入数据库

前提条件:本地已经安装好oracle单实例,能使用plsql developer连接,或者能使用TNS连接串远程连接到oracle集群读取excel写入数据库的方式有多种,这里介绍的是使用pandas写入,相对来说比较简便,不需要在读取excel后再去整理数据整个过程需要分两步进行:一、配置python连接oracle并测试成功网上有不少教程,但大部分都没那么详细,并且也没有说明连接单实例和连接集群的区别,这里先介绍连接oracle单实例的方式,后续再补充连接oracle集群方式。版本:wind

2021-03-17 00:20:13 4132 27

原创 十五、python基础:匿名函数(lambda表达式)、高阶函数

十五、python基础:匿名函数(lambda表达式)、高阶函数一、匿名函数(lambda表达式)1、什么是匿名函数?lambda x,y : x + y上面这个就是一个匿名函数,冒号前面是变量,冒号后面是函数体,也就是这个函数要执行的操作。它等同于:def add(x, y): return x + y匿名函数的使用场景一般就是我们的函数代码量太少了,少到我们都懒得给它...

2020-03-26 22:04:19 901

原创 十四、python基础:函数的一些进阶用法

十三、python基础:函数的进阶用法列举一些函数,用来加深一下对函数的印象,其中斐波那契数列的相关计算是使用了递归算法。一、函数的执行顺序;二、增加函数灵活性;三、把函数当参数传递;四、集合关键字参数;五、斐波那契数列(兔子数列);六、switch函数。一、函数的执行顺序;def test_1(): print("-" * 50)def test_2(): p...

2020-03-26 05:10:16 920

原创 十三、python基础:变量的作用域2(global保留字)

十三、python基础:变量的作用域2(global保留字)全局变量:整个程序都能直接调用的变量。不管你是在哪个函数中用到的,都能直接调用。局部变量:只能在函数内调用的变量。当你在某个函数中定义一个变量时,它就只能在该函数内调用。为什么要区分全局变量和局部变量呢?全局变量通常会用来暂存数据,一个程序可能会调用多个函数对数据进行处理,一环扣一环处理下去,每个函数都会对这些数据进行修改,如...

2020-03-12 13:42:55 2624

原创 十三、python基础:变量的作用域1(内存引用和释放)

十三、python基础:变量的作用域1(内存引用和释放)在谈到变量的作用域之前,我们先对python解释器运行时代码的执行顺序、内存分配、内存引用、内存释放机制先了解一下。1、运行一个py文件时,python解释器是怎么工作的?在pycharm运行一个py文件时,我们右键点击run,它就会执行。这时候,python解释器是从上往下一行一行地解释翻译成机器码。我们以下面这个例子来说明一下:...

2020-03-12 13:40:04 579

原创 十二、python基础:函数的返回值return

十二、python基础:函数的返回值return1、我们为什么需要return返回值在刚开始学的时候,有些同学可能会疑惑return返回值可以给我们带来什么,我们需要函数反馈它的处理结果的话,直接使用print()打印出来不就好了吗?在实际开发项目中,print()只是我们用来尝试打印结果,调试代码用的,它是可以输出结果,但是只能输出在控制台给我们看。如果你想在其他函数中使用这个函数的处理结...

2020-03-12 12:05:54 5113 1

原创 十一、python基础:函数各种参数的用法

十一、python基础:函数的参数1、为什么函数要有参数?我们封装成一个函数的目的就是为了让它可以重复使用,如果想要让函数能适应更多的情况,我们就要给函数预留参数,可以让用户自己传入参数,处理不同条件下的需求。2、函数的参数有哪些种类?在python中,函数的参数可以分为以下几种:位置参数、关键字参数、默认参数、多值参数2.1、位置参数def get_info(name, age, ...

2020-03-12 01:53:33 1020

原创 十、python基础:初步了解函数(适合小白同学)

十、python基础:初步了解函数(适合小白同学)1、为什么要用函数?我们学编程有个很好的用处就是代码能自动帮我们处理很多重复出现的问题或需求。而代码在没有封装成函数之前,它通常会是一大片的代码,几十行几百行都很常见。试想一下如果我们每次使用别人封装的模块时,都要把全部代码都复制过来,改这里改那里,最后改成能实现我们需求的代码。那用起来就相当不方便了,并且有点重复造轮子的意思了。当我们知道在...

2020-03-12 00:22:55 325 1

原创 九、python基础:数据容器(字典的创建和相关操作)

九、python基础:数据容器(字典的创建和相关操作)1、什么是字典在python中,字典用英文dict表示,它用一个大括号包起来的,里面可以存放各种类型数据。但必须是以键值对的形式存在,键值对的个数没有限制,键值对之间使用逗号隔开,每个键值对中间都有一个冒号,冒号前面的是键key,冒号后面的是值value。d = {'name':'xiaoming', 'skill': ['eat', '...

2020-03-11 17:24:37 573

原创 九、python基础:数据容器(列表的相关操作),较全面

九、python基础:数据容器(列表的相关操作),较全面。有时候我们忘记了列表的常用函数,可以在命令提示符窗口查询列表的常用操作函数:a = []a.然后按下tab键一、列表的创建:1、简单创建列表(手动创建):1.1、使用中括号[]直接创建:# 手动创建一个空列表,并赋值给变量a a = []# 手动创建一个包含数值型数据的列表a = [1, 2, 3, 34, 43, 6...

2020-03-11 14:48:56 450

原创 九、python基础:数据容器(元组的相关操作)

九、python基础:数据容器(元组的相关操作)1、创建元组的方式:# 直接使用小括号创建t = ()# 当元组内只有一个元素的时候,必须在它后面加个逗号t = (1,)t = (1, 2)# 使用python内置的tuple()方法创建,传一个可迭代对象# 尝试不传参数,传列表、字典、元组、字符串、生成器,看看输出了什么t = tuple()t = tuple([1, 2, ...

2020-03-11 13:32:14 398

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除