自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 github f2a 自留

github f2a

2024-10-30 15:55:38 194

原创 Python的回溯算法

回溯算法 traceback algorithm

2022-12-13 16:57:03 893

原创 一个简单的异步爬虫

python 异步 爬虫 aiohttp mongodb

2022-11-30 16:59:11 741

原创 python的快速排序

python 快排

2022-11-29 17:53:42 388

原创 python的归并排序

python 归并

2022-11-29 17:09:06 338

原创 Python二分查找的左闭右闭和左闭右开

python二分查找二分搜索左闭右闭左闭右开区间

2022-11-08 17:32:06 1793

原创 python的前缀树(字典树)

python的前缀树字典树

2022-11-02 11:32:42 1022 1

原创 python的堆队列(优先队列)

python的堆队列,优先队列

2022-11-02 11:16:11 487

原创 pandas有条件的对多列进行赋值

pandas有条件的对多列赋值

2022-06-21 17:37:29 3902

原创 Python里怎样改变isinstance和issubclass的行为

读到《Fluent Python》的 Chapter 11 “Interfaces: From Protocols to ABCs”,里面讲到的接口,协议和抽象基类都不难理解,读到 “Virtual Subclass” 虚拟子类有点乱了。举的例子(这几节的例子都太抽象了,读得我难受)大概长这样:后面给的测试结果是这样:我们可以看到由于 TomboList 要继承 list,所以不能做抽象基类 Tombola 的子类,但是为了 issubclass 和 isinstance 的判断处理,做了一个注册

2022-02-28 17:59:41 327

原创 由深拷贝浅拷贝想到pandas里的copy

《Fluent Python》第八章里讲到深拷贝和浅拷贝,然后我想到了常用的pandas里的copy:看上去deep是控制深拷贝或者浅拷贝,但是下面这段又解释说deep=True的时候,数据中的Python对象不是递归得拷贝,而是对对象的引用,这和标准库里的深拷贝不同。赋值索引对象这种不可变对象,出于性能原因,拷贝是不需要的,引用就足够安全:我不理解!于是去查相关资料。这个回答讲到说深拷贝在pandas里面不起作用,因为开发者认为在DataFrame中嵌入可变对象是一种反模式。好吧,如果DataF

2022-02-10 17:11:28 1226

原创 继承dict还是Collections.UserDict

文章目录文档说了个啥懂哥说了个啥书上说了个啥文档说了个啥文档 好像说了什么但没完全说,特别是这句,对这个类的需求已部分由直接创建 dict 的子类的功能所替代;不过,这个类处理起来更容易,因为底层的字典可以作为属性来访问。 前半句告诉我们这个类用处不大,后半句告诉我们它还有点用但是我对其中的因果关系感到疑惑,底层的字典作为属性为什么会容易处理,dict 里底层的字典不也可以随便拿到吗?总结一下,这块文档编辑者是个谜语人。(谜语人能不能guna~)懂哥说了个啥谷歌输入 how to use coll

2021-12-27 17:21:17 787

原创 python circular doubly linked list

python的双向链表需求码番外最近写装饰器看了 functools.lru_cache 的源码1,里面发现了这样的代码: root = [] # root of the circular doubly linked list root[:] = [root, root, None, None] # initialize by pointing to self类似的代码之前在 collections.OrderedDict 的源码里见过,之前也写过

2021-12-08 16:59:53 253

原创 装饰器之丐版singledispatch

装饰器之丐版singledispatch前言singledispatch()丐版实现总结前言在公众号上看到《一日一技:使用装饰器简化大量 if…elif…代码》,感觉很有意思跑去看了下源代码1,看到文档写着 Like singledispatch() but dispatches by value of the first arg ,记得 singledispatch() 好像在标准库 functools2里,于是故事开始。singledispatch()英文不好,参考了大佬的文章3知道了singl

2021-11-25 17:52:02 455

原创 python3 cookbook 笔记十四

第九章 元编程装饰器装饰器在你写自己的装饰器的时候记得要调用

2021-08-17 15:33:49 247

原创 单例模式与WeakValueDictionary

从{}到WeakValueDictionary今天在看关于面试的题,用装饰器实现的时候用的是普通的字典:from functools import wrapsdef single_ton(cls): _instance = {} @wraps(cls) def single(*args, **kwargs): if cls not in _instance: _instance[cls] = cls(*args, **kwargs)

2021-08-03 16:06:39 793

原创 家里电脑DAILI出了问题

自动设置代理保存不起作用居家隔离在家办公,突然发现代理连不上了。怎么回事,检查了配置,本地时间,瞟了眼tg,甚至重新安装了软件发现还是不行,特别是用v2ray的时候发现流量都没有走,代理配置有问题。打开设置-网络-代理,发现自动设置代理开着,手动设置代理关着,果然不对。于是我试图关掉它,点击保存,但是不起作用。找到问题后就容易多了,在这个问题后面,通过修改注册表里面HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersio

2021-08-02 17:42:05 282

原创 python3 cookbook 笔记十三

第八章 类与对象改变对象的字符串显示改变对象的字符串显示__repr__() 方法返回一个实例的代码表示形式,通常用来重新构造这个实例。 内置的 repr() 函数返回这个字符串,跟我们使用交互式解释器显示的值是一样的。 __str__() 方法将实例转换为一个字符串,使用 str() 或 print() 函数会输出这个字符串。__repr__() 生成的文本字符串标准做法是需要让 eval(repr(x)) == x 为真。 如果实在不能这样子做,应该创建一个有用的文本表示,并使用 < 和 &

2021-07-21 18:03:12 642

原创 你懂super吗?

类 super 描述器前言super的定义前言你真的懂super吗?首先,super不是指的小象战队的五号位,也不是IG战队的教练,望周知!写这篇文章是因为读到python cookbook的8.7和8.8章,挺懵逼也挺丢人的,所以这次就把它弄个明明白白咯。super的定义敲下 help(super) ,你会得到:Help on class super in module builtins:class super(object) | super() -> same as sup

2021-07-14 17:52:06 293

原创 百分之99的人都不知道关于pandas的stack的冷知识

先上stack的定义https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.stack.html def stack(self, level=-1, dropna=True): """ Stack the prescribed level(s) from columns to index. Return a reshaped DataFrame or

2021-06-24 18:21:58 533

原创 关于Python内建类set的参数选择

怎么发现的读别人代码的时候,看到paths = set([Path(x).resolve() for x in paths])于是我思考, set 类定义长这样class set([iterable])既然是接受一个 iterable 对象,为什么不直接传入生成器而是一个列表推导式呢paths = set(Path(x).resolve() for x in paths)于是,我进行了以下简单的测试。测试首先,上面两种写法的结果肯定是一致的,那么可能的差异就在于性能上了。ipyth

2021-06-17 17:54:36 143

原创 pandas里关于groupby的一些冷知识

持续更新列名列名对 agg 传递的函数或者函数名的列表,你会获得一个列名是这些函数名的 DataFrame :tips = pd.read_csv('examples/tips.csv')grouped = tips.groupby(['day', 'smoker'])grouped_pct = grouped['tip_pct']grouped_pct.agg(['mean', 'std', peak_to_peak])但是一个经常碰到的场景是我们传递了一个匿名函数,结果会变成这样:

2021-06-07 18:04:52 187

原创 pandas里的pivot和pivot_table是啥关系

pandas里的pivot和pivot_table是啥关系pivotpivot_table总结参考pivot首先函数定义如下:DataFrame.pivot(index=None, columns=None, values=None)Return reshaped DataFrame organized by given index / column values.Reshape data (produce a “pivot” table) based on column values. Use

2021-06-01 18:06:32 809

原创 Python里的描述器 Descriptor

Python里的描述器descriptor起因学!什么是描述器描述器的四个方法__set_name____set____get__补充属性的访问Property的实现应用起因在公众号里读到了这篇文章《这个 Python 知识点,90% 的人都得挂~》,一直读到第三点 基于描述符如何实现property 的时候懵了,于是去翻文档重新学习。(公众号的文章里叫描述符,翻译的文档叫描述器,以下统一称Descriptor为描述器)学!什么是描述器descriptor 就是任何一个定义了 __get__(),

2021-05-28 17:48:36 451

原创 关于Python字典的键的一些研究

关于Python字典的键的一些研究前言搬运疑惑研究其他思考前言今天10月28日,RNG2:0二刷4AM战队,杀象杀象!!起因是摸鱼的时候看了这篇文章,一些有趣且鲜为人知的 Python 特性,觉得很神奇就深入研究了下关于Python字典的 key 。搬运可能有人跟我一样懒得点链接,那我就搬过来好了。class SomeClass(str): passsome_dict = {'s':42}Output:>>> type(list(some_dict.keys(

2020-10-28 18:39:53 268

原创 2020-09-17

关于concat会改变indez顺序的问题。

2020-09-17 09:05:15 92

原创 从pandas_exercises里学到的

孤寡前言读数据计算占比div函数前言github上找的练习pandas的一个项目,记录下学到了啥。项目https://github.com/guipsamora/pandas_exercises下载到本地用Jupyter notebook打开就好啦。读数据众所周知,读取数据直接用pandas.read_(table,csv,sql,excel)就好,需要注意的是read_table和read_csv里默认的参数sep并不同,前者是\t,而后者是, 。计算占比计算占比时总会agg两个函数

2020-08-25 17:43:59 585

原创 Python的导入系统

昨天dodo三连胜!导入系统importlib包常规包命名空间包搜索模块缓存查找器和加载器导入钩子元路径加载包的相对导入导入系统一个 module 内的 Python 代码通过 importing 操作就能够访问另一个模块内的代码。 import 语句是发起调用导入机制的最常用方式,但不是唯一的方式。 importlib.import_module() 以及内置的 __import__() 等函数也可以被用来发起调用导入机制。import 语句结合了两个操作;它先搜索指定名称的模块,然后将搜索结果绑定

2020-07-31 17:24:06 538

原创 关于Open函数的newline参数

酬勤酬勤前言初探破案前言工作的时候发现下面这段代码:with open(outfile2, 'a+') as f: df.to_csv(f, sep='=', index_label=False, header=False)然后我检查文件发现每两行数据间会有多余的空行,咋回事呢?初探去找了 pandas 里 pandas.DataFrame.to_csv 的文档,发现这样一句话:If a file object is passed it should be opened with new

2020-07-28 18:14:40 10232 1

原创 Python文档随笔

小何加油!坐标\_\_new__\_\_init__\_\_del__富比较(rich comparison)\_\_hash__\_\_bool__TO BE CONTINUED后记坐标文档__new__如果 __new__() 在构造对象期间被发起调用并且它返回了一个实例或 cls 的子类,则新实例的 __init__() 方法将以 __init__(self[, …]) 的形式被发起调用,其中 self 为新实例而其余的参数与被传给对象构造器的参数相同。如果 __new__() 未返回一个

2020-07-27 17:55:40 349

原创 听说是Python 可视化神器:Plotly Express

恭喜Running Man10周年,Keep Running!起因安装pip命令相关链接上手散点图折线图条形图散点矩阵平行坐标图to add起因早上逛公众号看到有个库plotly做可视化很厉害,早上闲来无事就研究下,后面发现还要注册账号,直接劝退,结果被我找到他的一个高级封装库叫plotly_express,也有神器的名号,那就这个吧~安装pip命令pip install plotly_express相关链接两篇博文https://www.jianshu.com/p/44416202a

2020-07-13 17:40:53 1466

原创 Python条件控制易错点

前言最近在看Python的文档,发现以前没注意的知识点会记录成随笔。正文https://docs.python.org/zh-cn/3/tutorial/datastructures.html#more-on-conditions比较操作可以传递。例如 a < b == c 会校验是否 a 小于 b 并且 b 等于 c,而不是从左到右的运算。示例代码:>>> 2<1==FalseFalse...

2020-07-03 11:27:08 152

原创 从cpca模块里一段源码中学到的

随笔前言起因Reference前言早上在地铁上看公众号推荐了一个用于识别简体中文字符串中省,市和区的模块,叫做 cpca ,感觉可能跟我工作相关,同时看到文档里写到适用于 Pandas.Series 类型,正好今天放完假回来没啥事就说看下源码吧,于是有了这篇博客。起因模块里面 structures.py 里定义的这个类的初始化函数:class AddrMap(defaultdict): """封装 '地名' -> [[相关地址列表], 地名全名] 这种映射结构"""

2020-06-28 14:43:18 533

原创 python3 cookbook 笔记十二

第七章函数前言给函数参数增加元信息关于元组定义有默认参数的函数匿名函数捕获变量值将单方法的类转换为函数带额外状态信息的回调函数内联回调函数访问闭包中定义的变量前言第六章数据编码和处理好像不怎么用的到,以后遇到问题了再研究下吧,男人的承诺。其实第七章函数也没啥可讲的,把我以前没注意到的点记录下吧,其他简单的部分就忽略掉了哦。给函数参数增加元信息使用函数参数注解是一个很好的办法,它能提示程序员应该怎样正确使用这个函数。 例如,下面有一个被注解了的函数:def add(x:int, y:int) -&g

2020-06-02 17:56:45 172

原创 python3 cookbook 笔记十一

第五章 文件与IO读写文本数据打印输出至文件中使用其他分隔符或行终止符打印读写字节数据文件不存在才能写入读写压缩文件固定大小记录的文件迭代获取文件夹中的文件列表读写文本数据注意两种模式test mode(t)和binary mode(b),和四种常用的操作读(r)写(w)新建文件再写入(x)追加写入(a),组合起来就类似rt 和 wb这样,不过默认是text mode所以一般可以省略掉 t。第二点就是最好使用with语句控制上下文,比较美观而且不用手动关闭文件,比较pythonic:with ope

2020-06-01 17:13:41 170

原创 python3 cookbook 笔记十

python3 cookbook 第三章前言手动遍历迭代器代理迭代使用生成器创建新的迭代模式实现迭代器协议反向迭代带有外部状态的生成器函数迭代器切片跳过可迭代对象的开始部分排列组合的迭代序列上索引值迭代同时迭代多个序列不同集合上元素的迭代创建数据处理管道展开嵌套的序列顺序迭代合并后的排序迭代对象迭代器代替while无限循环前言这章节讲的是迭代器和生成器,学习之前可以看一下这个回答,先复习下可迭代对象,迭代器和生成器的相关知识。手动遍历迭代器这一小节的问题是,你想遍历一个可迭代对象中的所有元素,但是却

2020-05-29 15:59:05 441

原创 python3 cookbook 笔记九

python3 cookbook 第三章前言数字的四舍五入执行精确的浮点数运算数字的格式化输出二八十六进制整数字节到大整数的打包与解包复数的数学运算无穷大与NaN分数运算大型数组运算矩阵与线性代数运算随机选择基本的日期与时间转换计算上一个周五的日期计算当前月份的日期范围字符串转换为日期结合时区的日期操作写在后面前言第三章讲的是数字日期和时间,在地铁上看得七七八八了,我想跟上一章一样,快速过一遍得了,感觉没啥好讲的。数字的四舍五入老生常谈的一个问题,感觉 cookbook 上的解释也有点模糊,我推荐直

2020-05-14 18:07:30 349

原创 Python里的 type() 和 type.__new__()

写在前面在联系元类的时候产生了这个疑惑,在__new__里面返回值为什么要用type.__new__()而不是type(),我尝试着替换成后者,代码会起到意想不到的结果,甚至是无限递归导致报错。于是我去查下,在SO上找到了答案。class ModelMetaclass(type): def __new__(cls, name, bases, attrs): if name=='Model': return type.__new__(cls, name,

2020-05-09 17:49:47 2483

原创 Python 的 type 和 object 之间是怎么一种关系?

解释的非常好,学习元类的同学可以看一下。链接

2020-05-08 17:32:57 128

原创 python3 cookbook 笔记八

python3 cookbook 第二章写在前面re模块re.splitre.matchre.findallre.sub字符串开头结尾匹配将Unicode文本标准化字符串对齐合并拼接字符串字符串中插入变量以指定列宽格式化字符串字符串令牌解析实现一个简单的递归下降分析器写在前面终于有空继续cookbook的第二章了,这一章讲的是字符串和文本的处理,看了前面几小节发现用的方法大同小异,于是准备这一...

2020-05-08 16:16:42 217

空空如也

空空如也

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

TA关注的人

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