
python
destiny_python
目前正从事数据分析工作,并在不断精进中
展开
-
批量修改文件名,把文件名中的汉字自动替换成其首字母
在平时的工作中,当我们面对几百上千的文件时,想要按照某一规则修改其文件名,手动改肯定不人性化,下面这个程序可以根据工作者需要,稍作修改,可以完成不同要求的文件名批量修改任务,本博文是在笔者工作过程中遇到这样的需求写的,本博文实现的主要功能是把文件名中的汉字自动替换成其首字母,其他不变。如果有其他要求,把代码稍作修改,相信也可以实现。如图:原创 2017-03-24 09:22:54 · 8239 阅读 · 4 评论 -
爬虫第一天:环境配置
工欲善其事,必先利其器要想顺利开心快捷的爬啊爬,环境当然得到配置好啊,那接下来一步一步来吧:一:下载anaconda,为什么下载anaconda呢,为什么不直接去官网下载python安装包下载呢,当然也是可以的,只是anaconda更加方便,因为它集成了很多爬虫,数据分析需要的第三方库,也集成了像pip这样的神器,所以安装它来的更简单二:安装一个python IDE 这个就看个人喜好了原创 2017-08-09 22:45:56 · 1229 阅读 · 0 评论 -
剑指Offer:复杂链表的复制
# -*- coding:utf-8 -*-#class RandomListNode:# def __init__(self, x):# self.label = x# self.next = None# self.random = None"""分三步:第一步:复制每个节点,如:复制节点A得到A1,将A1插入节点A后面第二步:原创 2017-07-26 10:00:21 · 1161 阅读 · 0 评论 -
爬虫初探:把豆瓣读书主页上书的URL、书名、作者、出版时间、出版社全部爬下来
import requestsimport re#进入豆瓣读书主页,把网页源代码打出来content = requests.get('https://book.douban.com/').text#定义一个正则表达式对象pattern = re.compile('(.*?).*?year">(.*?).*?publisher">(.*?).*?', re.S)results = re.原创 2017-08-10 21:22:50 · 2151 阅读 · 1 评论 -
剑指Offer:数组中出现次数超过一半的数字
# -*- coding:utf-8 -*-class Solution: def MoreThanHalfNum_Solution(self, numbers): # write code here if (numbers == None or len(numbers) <= 0): return 0 resul原创 2017-07-26 21:27:50 · 295 阅读 · 0 评论 -
剑指Offer:表示数值的字符串
个人感觉这种题目用正则表达式匹配最简单,也就两三行代码就能解决,但是呢,好像并不能充分锻炼我们的逻辑思维能力,这个问题本身不难,但边界条件,特殊输入很多,要一一考虑清楚,下面给出一个一种一种情况考虑排除的解法,有点繁琐,但有注释,整体逻辑还是很清晰的。# -*- coding:utf-8 -*-class Solution: # s字符串 def isNumeric(self原创 2017-08-04 10:30:09 · 1032 阅读 · 0 评论 -
剑指Offer:链表中环的入口结点
第一步:先找到环中的一个点第二步:确定环中有几个元素,比如n个第三步:让第一个指针先走n步,第二个指针再从头走,两指针相遇即为入口结点class Solution: def EntryNodeOfLoop(self, pHead): # write code here meetingNode = self.MeetingNode(pHead)原创 2017-08-04 11:38:05 · 508 阅读 · 0 评论 -
把一个用阿拉伯数字表示的正整数转换成汉字大写表示
一个面试题,考查面试者的逻辑思维能力,考虑的问题很多,把一个用阿拉伯数字表示的正整数转换成汉字大写表示这里代码没有考虑非法输入,但如果是面试。最好跟面试官交流清楚,展现你考虑问题全面,写出的代码鲁棒性强比如:输入的数带符号,输入的数不是整数,是小数,是负数,或者压根就不是数值,或者是空值等等主要功能为:比如1201001 转换成:壹佰贰拾万壹仟零壹原创 2017-08-07 09:31:08 · 4008 阅读 · 1 评论 -
论一只爬虫的自我修养
编程语言基础,数据结构与算法告一段落,接下来学一学python爬虫,欢迎各位大神提建议原创 2017-08-09 10:07:22 · 463 阅读 · 0 评论 -
剑指Offer:机器人的运动范围
地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?# -*- coding:utf-8 -*-clas原创 2017-08-08 16:27:15 · 320 阅读 · 0 评论 -
python 把一个m*n的二维矩阵转换成一个m*n行,三列的列表
在数据处理的时候,我们经常遇到需要把一个矩阵,转换成列表,如下的矩阵转换成列表: 80080180211891163.5691163.5691163.56911901163.5841163.5841163.58411911163.6351163.6351163.6351192原创 2017-02-28 10:34:15 · 12689 阅读 · 4 评论 -
选择一个文件夹下所有txt文件的几列数据
有时我们会遇到这样的业务需求,比如我们有很多数据文件,里面有很多数据项,一列表示一个数据项,并且不同文件数据项的排列顺序也是随机的。但是我们只需用到其中的几列数据,并且我们需要我们用到的几列数据按照既定的顺序排列,如下图:这是一个txt文件,里面有9列,但是我只需要其中的DEPTH,AZIM,DEV三列,对于这样的需求,如果有几百个这样的文件,就必须编程来实现了,下面是源代码:impo原创 2017-03-28 13:56:28 · 5453 阅读 · 3 评论 -
读取指定目录下的所有文件名,并把它存储到本地
在平时的工作中,一个目录下可能有成千上百个文件,我们需要得到这些文件的文件名表格,下面一个简单的程序可以实现: # -*- coding: utf-8 -*-#author: wangqi#读取指定目录下所有文件名,也可选择限定下的文件名FindPath = 'D:\文件夹路径'def GetFileList(FindPath): i原创 2017-06-19 14:39:12 · 830 阅读 · 0 评论 -
剑指offer python语言解法
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。# -*- coding:utf-8 -*-class Solution: # array 二维列表 def Find(self, target, array): # write code here原创 2017-07-12 14:31:59 · 589 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。# -*- coding:utf-8 -*-class Solution: def reOrderArray(self, array): # write code here if原创 2017-07-16 09:05:28 · 411 阅读 · 0 评论 -
输入一个链表,输出该链表中倒数第k个结点。
'''输入一个链表,输出该链表中倒数第k个结点'''#常规解法,考虑了代码的鲁棒性,考虑了空指针,K为0,K大于链表的长度class Solution: def FindKthToTail(self, head, k): # write code here if (head == None or k == 0): return N原创 2017-07-16 11:13:46 · 1454 阅读 · 0 评论 -
剑指Offer:二叉搜索树的第K个结点
题目描述:给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 24 6 8 中,按结点数值大小顺序第三个结点的值为4。我们知道,由于二叉搜索树的中序遍历是排序的,所以我们可以先中序遍历整个二叉树,并把它存成一个列表,然后返回该列表的第K个值就行了# -*- coding:utf-8 -*-# class TreeNode:# def __ini原创 2017-08-08 10:11:52 · 294 阅读 · 0 评论 -
剑指Offer:数据流中的中位数
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。看别人用两个堆,一个最大堆,一个最小堆,说的挺在理,其实理解起来也不难,下面呢提供一种简单粗暴的方法,但是如果细细探究其时间复杂度,其实是O(n),但排序用的是内建函数,真实运行速度比较快,话不多说,上代码原创 2017-08-08 14:21:49 · 490 阅读 · 0 评论 -
用python实现排列组合
比如我们要实现1,2,3的排列组合,我们可以很容易写出来,如下表: 1个元素2个元素3个元素不考虑顺序1231,2,312,13,23123考虑顺序1231,2,3,12,21,13,31,23,32123,132,213,231,312,321用代码实现,首先是不考虑顺序的:#选取2原创 2017-08-21 22:51:09 · 62413 阅读 · 4 评论