Python学习笔记
早睡身体好_
这个作者很懒,什么都没留下…
展开
-
pandas对文本数据进行长度统计
在NLP的各项任务中,都需要对语料的长度有一个概括性的了解,例如平均长度、最大长度,大多数语料的长度范围等,以此来确定输入模型时的最大文本长度。pandas库有一种写法可以快速的统计文本语料的长度情况。原创 2023-02-15 13:15:51 · 995 阅读 · 1 评论 -
剑指 Offer 48. 最长不含重复字符的子字符串
题目描述请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pw...原创 2022-03-17 17:18:35 · 310 阅读 · 0 评论 -
剑指 Offer 36. 二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。特别地,我们希望可以就地完成转换操作。当转化完成以原创 2022-03-15 21:44:19 · 362 阅读 · 0 评论 -
剑指 Offer 31. 栈的压入、弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(原创 2022-03-13 17:12:08 · 188 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
题目描述输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \1 2给定的树 B: 4 /1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2...原创 2022-03-13 15:02:57 · 239 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点
题目描述输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.本题很容易想到的一个做法就是遍历两边链表,第一遍记录链表长度len,然后再第二次遍历中数到第len-k个结点原创 2022-03-13 14:28:03 · 840 阅读 · 0 评论 -
剑指 Offer 18. 删除链表的节点
题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个节点,原创 2022-03-13 11:39:29 · 140 阅读 · 0 评论 -
剑指 Offer 13. 机器人的运动范围
题目描述地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示例 2原创 2022-03-12 21:13:00 · 200 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [-1]限制:0 <= 节点个数原创 2022-03-12 16:09:40 · 588 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
题目描述在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 t原创 2022-03-12 15:33:41 · 314 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
题目描述找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000本题最简单的办法就是开一个map,遍历数组中每个数字,如果遍历到的数字已经在map里了就返回,否则添加到map中...原创 2022-03-12 15:00:03 · 280 阅读 · 0 评论 -
剑指 Offer 42. 连续子数组的最大和
题目描述输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示:1 <=arr.length <= 10^5 -100 <= arr[i] <= 100本题使用动态规划的思想,定义 f(i) 为以第 i 个数字结尾的子数...原创 2022-02-27 20:53:03 · 338 阅读 · 0 评论 -
面试题32 - I. 从上到下打印二叉树
题目描述从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]提示:节点总数 <= 1000 本题是二叉树的层序遍历,使用了队列这一数据结构,主要思路就是在遍历每一层的结点的时候,先将它自身输出,然后判断是否存在左右子节点,如果存在的话先后存入队列中。...原创 2022-02-23 21:17:24 · 634 阅读 · 0 评论 -
Python中函数的用法
目录Python函数的基本格式Python函数的传参形式参数实际参数不定长参数实参的值函数的拆包Python函数的文档说明作用域命名空间闭包Python函数的基本格式 Python函数的定义与其他语言类似,但是Python的函数体没有大括号所包围,所以函数体的缩进要严格。def 函数名(参数1,参数2,...,参数n): ...原创 2019-06-26 19:47:26 · 1666 阅读 · 0 评论 -
Python中的闭包
Python中的普通函数与c/c++中的函数使用方法区别不大,只不过是Python的参数更加灵活。但是Python中的闭包非常不同。如果在一个函数fun1中又定义了一个函数fun2,那么fun1就是外部函数,fun2就是内部函数。闭包的概念:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。例如:>&...原创 2019-06-27 08:59:56 · 436 阅读 · 0 评论 -
Python中的面向对象
目录写在前面类的定义类的初始化类的封装类的继承类中的属性 类属性 实例属性类中的方法 实例方法 类方法 静态方法写在前面 Python中的面向对象和c++、java中的面向对象非常类似,也具有继承、封装、多态等特性。但是Python中的类有所不同,在Pytho...原创 2019-06-27 19:00:24 · 700 阅读 · 0 评论 -
Python中的异常处理
目录写在前面 异常处理语句的基本格式异常处理的类型异常处理的方式写在前面 在Python中,如果一些代码出错了,则程序抛出异常之后,后面的代码就不会继续执行了。这并不是我们想要的结果。我们想要最大程度的保护我们的程序,使其即使发生错误也能继续执行剩下的代码。 Python中的异常处理与java中的非常类似,Pyt...原创 2019-06-28 10:36:39 · 598 阅读 · 0 评论 -
Python中的文件操作
目录文件操作的三个步骤:打开文件读写文件readreadlinereadlineswrite关闭文件closewith open() as file:文件操作的三个步骤:1、用各种方式打开文件2、对文件进行各种读写操作,然后保存3、关闭文件打开文件 文件分为二进制文件和文本文件,他们的区别我在另一篇中做了详解:https...原创 2019-07-03 21:58:16 · 637 阅读 · 0 评论 -
Python中的json入门
json简单来说就是一个数据转换格式,可以将一些信息转换为其他编码格式的字符然后存进文件中,之后在通过json的方法将文件中的字符读取并解析出来。以此来实现数据的持久化和安全性。 json只能将键值对来进行转换操作,而Python中的字典正好是键值对的形式,所以一般将需要转换的数据用键值对的形式存进字典中,然后再用json转换。json中常用的函数dump...原创 2019-07-03 22:24:23 · 394 阅读 · 0 评论 -
Python基础练习:学生信息管理系统
在学习完Python的基本语法和文件的基本操作之后,用一个学生信息管理系统来练练手。这个系统可以对学生信息进行增删改查。学生信息就是姓名、QQ号、微信号,用面向对象的思想来编程。编程思路及编码 数据的存取 使用文本文件来存储学生信息。将每个学生的信息用一个字典来包装,所有学生的数据字典放到一个list中,最后用json将数据存到文件中,实现系...原创 2019-07-03 22:37:13 · 1349 阅读 · 0 评论 -
Python爬虫简单实战(爬取CSDN博客阅读数)
在这学期学习了java web的基础上,又学习了Python的基本语法,所以尝试着做了一个简单版的爬虫,爬取了我所有博客的阅读数。进阶版:https://blog.csdn.net/Q_M_X_D_D_/article/details/94732292编程思路 实现这个简单的爬虫大致分三步: 1、先使用Python的第三方库requests来...原创 2019-07-04 09:07:38 · 884 阅读 · 1 评论 -
Python爬虫进阶实战(多线程、可视化、面向对象)
上篇中写了Python爬虫的基础知识,并将我的所有博客文章标题和阅读量爬下来放进了文件中。详情点击:简单爬虫 这篇中将上个程序进阶一下,在多线程下,将所有的文章标题和阅读量对应着爬下来,并生成柱状图。再将函数封装到类中,通过指定用户名就可以爬取该用户的所有文章阅读量。进阶详情 上一篇中的阅读量是在博客首页爬取的。但是经过我实际操作后发现,将首...原创 2019-07-05 15:09:06 · 789 阅读 · 0 评论 -
Python入门学习
目录Python基础与传统语言的区别Python基础数据类型1、得到变量的类型,type(变量名)2、''' ''' 可以定义多行的字符串3、强制类型转换4、字符串的操作Python中的数据处理容器1、列表list2、字典dictionary3、元组4、集合Python中的流程控制语句1、输入语句2、条件语句3、循环语句Python基...原创 2019-06-25 21:40:07 · 801 阅读 · 0 评论