![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 81
六神就是我
万物不仁,天地为刍狗
展开
-
python设计模式之生成器模式
生成器模式是一种创建型设计模式, 使你能够分步骤创建复杂对象,生成器不允许其他对象访问正在创建中的产品。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。又名建造者模式。为什么需要?简化复杂的构造函数。只有当产品较为复杂且需要详细配置时,使用生成器模式才有意义。生成器与其他创建型模式的不同之处在于:它让你能创建不遵循相同接口的产品。应用场景使用生成器模式可避免 “重叠构造函数 (telescopic constructor)” 的出现。当希望使用代码创建不同形式的产品 (例如石头或木.原创 2021-03-30 21:23:05 · 558 阅读 · 5 评论 -
python读写excel数据(list相关)
主要涉及python对excel的操作顺手帮朋友处理毕业数据写的小脚本,她的问题如下:样本前后顺序是固定的。id是升序排列之后的, time_dif表示时间差。想生成新变量count=所在的组里样本的数量。分组的依据为id 和 time_dif,分组规则为在同一id内,从第一个样本开始数,一直到下一个time_dif>5之前的样本分为一组。分组如图所示: 朋友给的数据集里开始已...原创 2018-03-09 10:58:46 · 28206 阅读 · 0 评论 -
python编码经验
python推荐使用3.6以上版本,参考google编码风格总结的个人编码经验。编码原则DRY(don’t repeat yourself),不要总是重复自己的代码,抽象问题,提高代码的复用性PIE(Program Intently and Expressively), 意图清楚而且表达明确地编程ETC(easy to change),代码易于变更,降低模块之间的耦合度,遵循良好的设计模式命名规范1.函数使用小写字母+下划线命名,如feature_selection_by_filter,.原创 2021-03-09 20:14:55 · 186 阅读 · 0 评论 -
python用三种方式实现生产消费模型(进程,线程,协程)
最近用kafka用的比较多,因此对生产消费模型有了不小的兴趣,就想着,如果在没有搭建kafka的情况下,该怎么实现生产消费模型呢?前菜进程:是系统进行资源分配的最小单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。线程:是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程至少包含一个.原创 2020-07-04 18:07:59 · 747 阅读 · 0 评论 -
python 实现字典排序(多条件排序规则,含升序降序)
在现实场景中,存在多条件的排序规则,如,在一批学生中,先按照成绩降序排序,再按照出生日期降序(出生日越晚的年龄越小,越聪明),最后再按照学号升序排列。本文实现两种排序方法,以供参考。测试数据:test_data = [{'name': "小明", 'student_id': 16, 'score': 97, 'birthday': date_to_str('1996-10-24 18:00:00', 0)}, {'name': "小花", 'student_id': 19,.原创 2020-05-18 13:51:09 · 6514 阅读 · 1 评论 -
使用python将excel单元格中指定文字加粗标红
import xlsxwriterout_path = 'test.xlsx'workbook = xlsxwriter.Workbook(out_path)worksheet = workbook.add_worksheet(u'sheet1')bold_red = workbook.add_format({'bold': True, 'color': 'red'})workshee...原创 2020-03-02 11:33:06 · 9299 阅读 · 2 评论 -
python 拼接误换行句子代码
有些文本在解析出来的时候,换行出现了问题,比如:“今天天气很好啊\n所以我出来玩了。”因此我们需要将误换行的句子拼接起来。一开始打算是用递归的思想去做,后面发现python的list也可以用pop,就直接pop更方便了,时间复杂度的话就是O(n)。import resentence_list = ['大家按时打卡的。', '的空间马上到', '肯定撒老大', '健康大使的。','打卡十...原创 2019-12-15 19:22:50 · 566 阅读 · 0 评论 -
使用python将doc文件转为utf8编码格式的txt
最近花了点时间看了会doc的转换,果然官方文档最好用,代码如下:import osimport sysimport fnmatchimport win32com.clientPATH = os.path.abspath(os.path.dirname(sys.argv[0]))doc_path = PATH + '/data/doc/'txt_path = PATH + '/dat...原创 2019-09-19 14:01:22 · 2744 阅读 · 2 评论 -
使用SimHash算法实现千万级文本数据去重插入(python版代码)
前言,最近在搞大量数据插入MySQL的时候悲催的发现速度越来越慢,因为我的数据来多个源,使用流式更新,而且产品要求在这个表里面不能有数据重复,划重点!衡量数据是否重复的字段是文本内容,字段类型是text,…那么问题来了,如何在千万级数据量实现去重插入呢?而且要快!自杀式做法1.管它重复不重复,先插入了再说2.使用group by 先对不能重复的字段进行分组,在用一个having coun...原创 2019-06-18 16:28:13 · 11919 阅读 · 22 评论 -
python中使用正则表达式去除中文文本多余空格,英文之间的保留
需求在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入输出如下:input:我今天 赚了 10 个亿,老百姓very happy。output:我今天赚了10个亿,老百姓very happy。代码def clean_space(text): """" 处理多余的空格 """原创 2019-03-04 20:34:43 · 7947 阅读 · 0 评论 -
windows conda虚拟环境下配置cx_Oracle踩坑小结
前言:如果说本来安装cx_Oracle就是一个历经千辛万苦的过程,那么我这次安装的过程简直是巨坑无比了,现总结如下。限制环境系统:windows 64python:在anaconda3下的创建的虚拟环境,2.7版本,64位其他:已装了PLSQL,oracle clinet是32位的…好,那么问题来了,网上资料说cx_Oracle要和python版本和oracle clinet一致,那...原创 2019-01-16 20:21:35 · 887 阅读 · 0 评论 -
python练手小程序之二
判断是否为完全数题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 输入一个数,判断是否是“完数”。程序分析:对输入的数j进行因子分解(这里的因子不是质因数):(1)初始化一个s变量,将j赋值给s,使用循环和取余来判断1-j中的i是否能被j整除,如是则使用增量赋值s-=I ,即s = s-i。(2)最后判断s是否等于0,6-1-2-3 = 0 和1+...原创 2018-10-29 20:37:48 · 390 阅读 · 0 评论 -
python练手小程序之一
最近正好在辅导别个python,因此搜罗了一些比较适合新手编写的程序,会把程序和程序分析都放上来。字符分类统计题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。程序分析:利用while语句,以及if elif else多个条件判断。使用到的基本知识有循环,字符处理函数,输入输出,判断。import strings = raw_input('input a st...原创 2018-10-28 18:24:09 · 706 阅读 · 0 评论 -
使用Python动态生成变量并且赋值,实现数据分组问题
前言在处理一些爬取下来的数据时,存在分组问题,也就说,原来的数据集A中有20个类别,那么按照一般的思维的第一反应来说,我们首先要创建20个列表,然后遍历整个爬下来的数据,做if判断或者case-switch。but,我们用的语言是python,python里是没有case-switch的,因此我们可以使用字典映射的方法来实现case-switch,具体实现代码如下:def number...原创 2018-06-05 11:45:16 · 2840 阅读 · 0 评论