
python
文章平均质量分 51
weiambt
研究生在读,专注于算法、后端、大模型、AI等领域,擅长Java,Python,Golang。记录学习历程,分享学习心得,欢迎大家交流讨论。
展开
-
从静态到动态:Python的动态属性可以随时随地添加
在Python中,对象的成员变量(属性)通常是在类定义中通过self来创建的,这通常发生在类的__init__方法(构造方法)中。然而,一旦对象被实例化,你仍然可以在外部给这个对象添加新的成员变量。原创 2024-04-03 14:08:27 · 424 阅读 · 0 评论 -
Python项目快速生成依赖文件requirements.txt
应用程序通常需要设置安装所需并依赖一组类库来满足工作要求。要求文件是指定和一次性安装包的依赖项具体一整套方法。简单而言,当我们做Python项目时,把项目依赖的外部库以及版本列出来,方便后续维护,也为其他使用项目的人提供环境配置参考。创建requirements.txt。生成所有依赖文件并重定向。原创 2023-03-23 19:38:39 · 577 阅读 · 0 评论 -
给Python项目创建一个虚拟环境(venv)
为您的Python项目创建一个虚拟环境是一种良好的实践,可以隔离项目的依赖项,以确保它们不会干扰全局Python环境或其他项目。通过创建虚拟环境,您可以轻松管理项目的依赖项,并确保它们与其他项目或全局Python环境不冲突。这是一个良好的实践,特别是在多个项目之间切换或共享代码时。激活虚拟环境后,您将在终端提示符前看到虚拟环境的名称,表明您已成功进入虚拟环境。这将确保项目的依赖项仅安装在虚拟环境中,而不会影响全局Python环境。这将在项目目录中创建一个名为venv的新目录,其中包含虚拟环境。原创 2023-10-06 20:52:10 · 1086 阅读 · 0 评论 -
Python二维数组的坑:vis = [[0]*m] * n
如果你修改一个子列表中的元素,其他所有子列表中对应位置的元素也会被修改,因为它们都指向同一个内存位置。可以看到,在第一种方式中,修改一个子列表的元素会影响到其他所有子列表,而在第二种方式中,每个子列表是独立的,修改一个子列表不会影响其他子列表。这种方式创建了一个包含 n 个独立子列表的列表。通过列表推导式的方式,每个子列表都是通过 [0]*m 创建的,因此它们在内存中是不同的,互相之间没有关联。这两行代码都是用来创建二维列表(或矩阵),但它们之间有一个关键的区别在于列表的复制方式。原创 2023-08-05 00:00:06 · 387 阅读 · 0 评论 -
【异常】python下载datascience报错PackagesNotFoundError: The following packages are not available from curre
Pycharm执行datascience的下载命令,如下。,搜索datascience,进入到页面。根据报错提示,进入官网。原创 2023-07-03 21:51:35 · 513 阅读 · 0 评论 -
python定义数组一定要给初值,否则指定数组长度不起作用
一定要给初值,否则指定数组长度不起作用。原创 2023-09-12 17:16:30 · 160 阅读 · 0 评论 -
python的有序容器:sortedcontainers(第三方模块)
因为是有序容器,所有在删改容器的时候,使用的是二分法,时间复杂度大多是O(nlogn), 合理地运用这些容器,可以提高算法的时间复杂度。问:如果说是严格升序, 那么能用某种意义上的链表或者堆也能实现的吧?答:但特殊情况下,用这个更方便,比如23. 合并 K 个升序链表,如果要求不能新建节点或要求空间复杂度的话。你用heapq.heappush就无法自定key参数。你得在链表里添加比较函数(原创 2023-09-12 17:24:54 · 691 阅读 · 0 评论 -
正则表达式以及python的re模块介绍
比如想要匹配一些特殊的字符,比如-,-在正则表达式中就是个特殊字符,用来表示一个范围,如果要匹配"1-1"这样的情况,正则表达式是。在使用正则表达式进行字符串的匹配时,如果字符串中包含了正则表达式的特殊字符,那么就需要使用re.escape函数来对这些特殊字符进行转义,让它们变成普通字符,以保证匹配的准确性。在任意编程语言中,定义的一个用户的一个字符串,在被加载的时候不是不变的,比如s = “\n"会被解析成为一个换号,但是当我们需要输出”\n"时,我们要这样写s =举例如下,匹配出数字后面的。原创 2023-09-12 17:23:03 · 1142 阅读 · 0 评论 -
python的二分模块bisect
insort_left() 就是在bisect_left()找到插入点的基础上,将元素 x 插入序列 a,从而改变序列 a 同时保持元素顺序。bisect,是实现。bisect的api的区间都是左闭右闭,但是在传下标的时候可以越界去传,不会报错。在[lo,hi]中找到第一个>=x的元素的下标,相当于lower_bound。例子如下,a的长度只有4,最大下标是3,但是传参的时候hi可以传越界的下标4。在[lo,hi]中找到第一个>x的元素的下标,相当于upper_bound。和insort_left类似。原创 2023-09-12 17:21:32 · 260 阅读 · 0 评论 -
python的itertools模块常用方法
很多人都致力于把Python代码写得更Pythonic,一来更符合规范且容易阅读,二来一般Pythonic的代码在执行上也更有效率。今天就给大家介绍一下Python的系统库itertools。迭代器(生成器)在Python中是一种很常用也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,按需使用,从而提高开发体验和运行效率,以至于在Python 3中map,filter等操作返回的不再是列表而是迭代器。原创 2023-09-12 17:20:39 · 113 阅读 · 0 评论 -
python的funtools模块常用方法
我们知道,通过设定参数的默认值,可以降低函数调用的难度,比如int()函数,默认是将字符串转换成10进制,相当于int(s,base = 10),这是Py语法的默认值。用户也可以自定义一个想要的默认值的方法,作用是:当某个函数被大量调用时,每次都要传参,非常麻烦,这时候就可以用偏函数简化了。2) 如果程度规模大,并且是长时间运行,建议使用@lru_cache 装饰器,使用方法灵活,但要注意控制缓存数量,必要时手工清理。因此,只要实例持久存在,缓存的结果就可用,我们可以将该方法用作类的属性那样来使用,如。原创 2023-09-12 17:19:58 · 328 阅读 · 0 评论 -
python多进程multiprocessing
在上面的代码中,Pool类的构造函数中指定了进程池的大小为4,然后通过调用map方法来启动进程池中的进程。解决方法2:使用pathos.multiprocessing,可以传入多个参数的方法f,代码如下,不多此时,map的第二个参数就是f的第一个参数的list,map的第三个参数就是f的第二个参数的list。比如,Pool().map(add,[0,1,2],[3,4,5]),代表add(0,3),add(1,4),add(2,5)这三个函数并行。这样子进程就会守护主进程,主进程结束,子进程也会自动销毁。原创 2023-09-12 17:18:22 · 647 阅读 · 0 评论 -
python下载第三方包失败的解决方案:由于目标计算机积极拒绝,无法连接
Python下载第三方包失败报错如下:Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。这个问题很棘手,花了很久才解决了,最终的解决方案是去注册表中修改了配置。使用三方镜像进行下载,例如下面使用清华的镜像。原创 2022-12-01 21:06:32 · 5285 阅读 · 3 评论 -
【Python】异常:TypeError: ‘str’ object is not callable
问题:在调用字符串转换函数str()时,控制台报错 TypeError: 'str' object is not callable 原因:之前的代码中存在变量str。函数str()是系统自带的,你不能在用它的时候自己同时定义一个别的叫做str的变量,这样会冲突方法:把之前定义的变量str改成其他名字参考博文:https://blog.youkuaiyun.com/lifelegendc/article/details/55051374...原创 2020-06-14 19:37:06 · 834 阅读 · 0 评论 -
【Python】\ufeff
问题:通过文件操作读入文本内容"English"后,内容前面多了 \ufeff 前缀方法:open方法内加上参数:encoding='UTF-8-sig'f = open(path, encoding='UTF-8-sig')原创 2020-06-14 14:59:29 · 432 阅读 · 0 评论 -
【Python】strip函数去除字符串末尾的标点
s = '.I am a programmer.'print(s)# .I am a programmer.print(s.strip('.'))# I am a programmer原创 2020-06-14 14:49:56 · 1102 阅读 · 0 评论 -
【Python】split分词后出现空字符
问题:使用split函数分词之后出现了空字符s = 'I am a programmer 'print(s.split(' '))# ['I', 'am', 'a', 'programmer', '']方法:ss = s.split(' ')print([s for s in ss if s])# ['I', 'am', 'a', 'programmer']原创 2020-06-14 14:41:52 · 1138 阅读 · 1 评论