随笔分类 -  Python

摘要:安装scrapy pip install scrapy -i https://pypi.douban.com/simple/ 安装过程可能遇到的问题 版本问题导致一些辅助库没有安装好,需要手动下载并安装一个辅助库Twisted 运行时候:ModuleNotFoundError: No module 阅读全文
posted @ 2023-01-19 22:20 yetangjian 阅读(188) 评论(2) 推荐(1) 编辑
摘要:核心思想 空间换时间,是一种用于快速查询的多叉树结构,利用字符串的公共前缀来降低时间 优缺点: 优点:查询效率高,减少字符比较 缺点:内存消耗较大 每次都会从头向下一直到字符串结尾 前缀树 1 单个字符串从前到后加到一棵多叉树上 2 每隔字符串都会有自己所在节点的两个属性path和end,path代 阅读全文
posted @ 2022-12-18 15:16 yetangjian 阅读(290) 评论(0) 推荐(0) 编辑
摘要:归并排序的时间复杂度O(nlogn),空间复杂度为O(n) 首先我们先假设有两个有序数组,我们去进行一次归并 用代码实现 def merge(li: list, start: int, mid: int, end: int) : res=[] j = mid +1 while start <= mi 阅读全文
posted @ 2022-12-11 14:22 yetangjian 阅读(51) 评论(0) 推荐(0) 编辑
摘要:安装 Flask-WTF及其依赖可使用pip安装 pip install flask_wtf 配置 要求应用配置一个密钥。密钥是一个由随机字符构成的唯一字符串,通过加密或签名以不同的方式提升应用的安全性 app=Flask(__name__) app.secret_key='123321' 如果不设 阅读全文
posted @ 2022-10-02 17:11 yetangjian 阅读(418) 评论(0) 推荐(0) 编辑
摘要:友情链接 让Python更优雅更易读(第一集) 1.装饰器 1.1装饰器特别适合用来实现以下功能 运行时校验:在执行阶段进行特定校验,当校验通不过时终止执行。 适合原因:装饰器可以方便地在函数执行前介入,并且可以读取所有参数辅助校验。 注入额外参数:在函数被调用时自动注入额外的调用参数。适合原因:装 阅读全文
posted @ 2022-09-08 22:03 yetangjian 阅读(598) 评论(0) 推荐(0) 编辑
摘要:图是一种善于处理关系型数据的数据结构,使用它可以很轻松地表示数据之间是如何关联的 图的实现形式有很多,最简单的方法之一就是用散列表 背景 图有两种经典的遍历方式:广度优先搜索和深度优先搜索。两者是相似的。 实现 1广度优先搜索算法需要用队列来记录后续要处理哪些顶点。 2该队列最初只含有起步的顶点 3 阅读全文
posted @ 2022-09-03 17:30 yetangjian 阅读(1411) 评论(1) 推荐(0) 编辑
摘要:面向对象设计原则 开放封闭原则: 一个软件实体如类、模块和函数应该对拓展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。 里氏替换原则: 所有引用的父类的地方必须能透明的使用其子类的对象 依赖倒置原则: 高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应 阅读全文
posted @ 2022-07-09 12:58 yetangjian 阅读(453) 评论(0) 推荐(2) 编辑
摘要:贪婪算法 贪婪算法也称为最优算法,这种算法并不是最准确的答案,但确认最接近答案的近似算法。 这时候有人会问,不是最准确的答案我要她干嘛?但是在日常中,我们有时候会遇到一些我们无法处理的问题,甚至是要花费成吨的资源也无法很好解决的问题 这时候我们可以考虑使用近似算法,来节约资源这种简单方法解决 假如我 阅读全文
posted @ 2022-05-15 19:53 yetangjian 阅读(139) 评论(0) 推荐(0) 编辑
摘要:快速排序 快速排序是比较常用的一种排序方式,通过递归的方法进行排序 首先使用递归方式我们先要解决两个问题:1找到基准条件 2找到递归条件 基线条件为数组为空或只包含一个元素。在这种情况下,只需原样返回数组——根本就不用排序 那么这样我们就会把数组长度小于2的定位我们基准条件 然后我们会将剩余数组进行 阅读全文
posted @ 2022-05-15 13:53 yetangjian 阅读(1064) 评论(0) 推荐(0) 编辑
摘要:背包问题 现在要往一个可以装4个单位重量的背包里怎么装价值最高:A重量1个单位,价值15;B重量3个单位,价值20;C重量4个重量,价值30 使用动态规划填充空格 class SolutionBag: def valuableBag(self,optionalList,sizeBig): #创建网格 阅读全文
posted @ 2022-05-14 20:46 yetangjian 阅读(233) 评论(0) 推荐(0) 编辑
摘要:内置的列表类型提供sort的方法 可以根据多项指标给list实例中的元素排序。在默认情况下,sort方法总是按照自然升序排列列表内的元素 #升序排列 list1=[2,3,1,2,5] list1.sort() print(list1) #[1, 2, 2, 3, 5] #降序排列可以使用指定参数r 阅读全文
posted @ 2022-05-01 18:39 yetangjian 阅读(2216) 评论(0) 推荐(0) 编辑
摘要:二分法 尽管二分搜索通常优于顺序搜索,但当n较小时,排序引起的额外开销可能并不划算。实际上应该始终考虑,为了提高搜索效率,额外排序是否值得。如果排序一次后能够搜索多次,那么排序的开销不值一提。然而,对于大型列表而言,只排序一次也会有昂贵的计算成本,因此从头进行顺序搜索可能是更好的选择。 #二分法 d 阅读全文
posted @ 2022-04-16 15:45 yetangjian 阅读(97) 评论(0) 推荐(0) 编辑
摘要:目的: 这个随笔可以是看做是一个笔记,会记录一些自己觉得有意义或是有趣的或是优雅的或是......所以随笔的整体会比较凌乱,看到了这部分内容或许就会记录进来,好记性不如烂笔头,也给以后的自己翻阅提供一些回忆的素材。 实现一个“看上去很像分数”的数据结构 class Fraction: def __i 阅读全文
posted @ 2022-04-09 19:26 yetangjian 阅读(69) 评论(0) 推荐(0) 编辑
摘要:匿名函数 可以只有一个入参或多个入参,但返回值只能是一个函数 #普通函数 def sum(a,b): return a+b #等价的匿名函数 add = lambda a,b: a+b 闭包 举一个平均值的例子: 根据例子我们发现,每次调用make_avg(),都会返回averager函数对象 #使 阅读全文
posted @ 2022-04-03 21:28 yetangjian 阅读(66) 评论(0) 推荐(0) 编辑
摘要:import paramiko # unicode_utils.py def to_str(bytes_or_str): """ 把byte类型转换为str :param bytes_or_str: :return: """ if isinstance(bytes_or_str, bytes): v 阅读全文
posted @ 2022-03-26 19:07 yetangjian 阅读(132) 评论(0) 推荐(0) 编辑
摘要:队列在进行数据操作时必须遵循“先进先出(Firstin Firstout,FIFO)”的原则,这一特点决定了队列的基本操作需要在其两端进行 队列(Queue)的基本操作通常在队列的两端被执行,其中执行插入元素操作的一端被称为队尾(rear);执行删除元素操作的一端被称为队头(front)。 clas 阅读全文
posted @ 2022-03-20 15:27 yetangjian 阅读(252) 评论(0) 推荐(0) 编辑
摘要:import smtplib from email.mime.text import MIMEText from email.header import Header #配置邮箱信息 mailHost="smtp.qq.com" mailUser="*******" mailPass="****** 阅读全文
posted @ 2022-03-06 21:12 yetangjian 阅读(50) 评论(0) 推荐(0) 编辑
摘要:这里有 n 个航班,它们分别从 1 到 n 进行编号。有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 s 阅读全文
posted @ 2022-03-05 21:21 yetangjian 阅读(171) 评论(0) 推荐(0) 编辑
摘要:现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1。给你一个数组 prerequisites ,其中 prerequisites[i] = [ai, bi] ,表示在选修课程 ai 前 必须 先选修 bi 。 例如,想要学习课程 0 ,你需要先完成课程 1 , 阅读全文
posted @ 2022-02-27 19:20 yetangjian 阅读(136) 评论(0) 推荐(0) 编辑
摘要:背景:爬取豆瓣电影top250的信息 使用线程池 import re from concurrent.futures import ThreadPoolExecutor import requests #获取豆瓣电影top250电影名字、导演、评分、评价人数 def getDoubanRource( 阅读全文
posted @ 2022-02-19 18:08 yetangjian 阅读(79) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示