
python
DecafTea
定量,归类(框架),融合,体系
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python常见面试题
摘取自:https://www.cnblogs.com/chongdongxiaoyu/p/9054847.html1、大数据的文件读取① 利用生成器generator②迭代器进行迭代遍历:for line in file2、迭代器和生成器的区别1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是pyth转载 2021-04-22 22:49:26 · 146 阅读 · 0 评论 -
python常考的语言特性
1. 装饰器装饰器是修改其他函数的功能的函数。1)前期理解在python中一切皆对象,函数也是对象。当你把一对小括号放在后面,这个函数就会执行;然而如果你不放括号在它后面,那它可以被到处传递,并且可以赋值给别的变量而不去执行它。举例:def hi(name="yasoob"): def greet(): return "now you are in the greet() function" def welcome(): return "now原创 2021-04-21 10:29:34 · 134 阅读 · 0 评论 -
判断回文:回文数,回文链表,最长回文子串
1. 回文1)回文数https://leetcode-cn.com/problems/palindrome-number/判断一个整数是否是回文数。python:class Solution: def isPalindrome(self, x: int) -> bool: # 不用字符串,则用数学思想解 if x < 0 or (x % 10 == 0 and x != 0 ): return False原创 2021-04-13 16:43:40 · 187 阅读 · 0 评论 -
Python bisect模块
bisect模块提供了如下几个函数:(下面函数中的lo和hi用于指定列表的区间,默认的是整个列表)bisect.bisect_left(a, x, lo=0, hi=len(a)) 返回将x插入到列表a中的索引位置,如果已有x,则返回第一个x的位置bisect.bisect_right(a, x, lo=0, hi=len(a)) 返回将x插入到列表a中的索引位置,如果已有x,则返回最后一个x位置的下一个位置bisect.bisect(a, x, lo=0, hi=len(a))转载 2021-04-05 20:39:47 · 232 阅读 · 1 评论 -
引用赋值,浅拷贝copy.copy(),深拷贝copy.deepcopy()
1. 引用赋值对于不可变对象,修改变量的值意味着在内存中要新创建一个数据对象。所以对于不可变对象,变量之间不会相互影响。对于可变对象,变量之间是相互影响的。数值、字符串、元组是不可变对象,列表是可变对象。可变对象和不可变对象的赋值形式虽然一样,但是修改数据时的过程不一样。对于不可变对象,修改数据是直接在堆内存中新创建一个数据对象。如图:对于可变对象,修改这个可变对象中的元素时,这个可变对象的地址不会改变,所以是"原处修改"的。但需要注意的是,这个被修改的元素可能是不可变对象,可能是可变对象,如原创 2021-04-04 18:53:25 · 432 阅读 · 0 评论 -
python 多变量赋值、链式赋值
多变量赋值变量赋值前,右边首先完成计算。右边的表达式从左到右计算。比如:x = 1, y = 2x, y = y, x+ythen x = 2, y = 1+2 = 3x = yy = x+ythen x = 2, y = 2+2 = 4链式赋值a=b=c=1 的赋值顺序是:a=1,b=a,c=a...原创 2021-04-03 22:14:28 · 533 阅读 · 0 评论 -
待学:jieba分词,Regular Expressions
jieba分词https://www.cnblogs.com/zhbzz2007/p/6076246.htmlPython标准模块—Regular Expressionshttps://www.cnblogs.com/zhbzz2007/p/6813836.html原创 2021-04-03 10:10:07 · 274 阅读 · 0 评论 -
排序问题总结 - CSNotes
补充:堆排序(升序,降序,迭代,递归写法)https://blog.csdn.net/unspoken0714/article/details/107921229第K大的元素或者第K个最大元素可用堆排或快速选择(快排+二分)的解法。堆排:第K大的元素用最小堆或最大堆,冒K次,时间复杂度 = 建堆时间+调整堆k次 = O(n)+ O(Klogn)第K个最大元素用最大堆或最小堆,冒K次,时间复杂度一样如果是用迭代实现堆的heapify,空间复杂度为O(1),堆排序是原地排序。import原创 2021-03-31 18:52:42 · 127 阅读 · 0 评论 -
二分查找总结题型 - CSNotes
二分查找有很多细节要注意。x的平方根对于 x = 8,它的开方是 2.82842…,最后应该返回 2 而不是 3。在循环条件为 l <= h 并且循环退出时,h 总是比 l 小 1,也就是说 h = 2,l = 3,因此最后的返回值应该为 h 而不是 l。解法一:class Solution: def mySqrt(self, x: int) -> int: # 直接返回的情况 if x <= 1: return原创 2021-03-28 23:23:37 · 196 阅读 · 0 评论 -
最大值,最小值 初始化
MAX:用于初始化一个求min的变量MIN:用于初始化一个求max的变量C++INT_MAX, INT_MINJAVAInteger.MAX_VALUE 和 Integer.MIN_VALUEJava Integer取值范围是:[-2147483648, 2147483647]PYTHONfloat(“inf”), float("-inf")原创 2021-03-28 18:42:02 · 1174 阅读 · 0 评论 -
最长公共子序列
返回最长公共子序列的长度leetcode 1143class Solution: def longestCommonSubsequence(self, text1: str, text2: str) -> int: m, n = len(text1), len(text2) dp = [[0] * (n + 1) for _ in range(m + 1)] for i in range(1, m + 1): ..原创 2021-03-28 11:38:02 · 159 阅读 · 0 评论 -
二叉树的层序遍历及变体
层序遍历知识点:python3的deque:https://blog.csdn.net/langb2014/article/details/100118296模板:popleft一个节点,append自己的value到level数组中(遍历该层),然后append所有他的子节点到queue中(queue存下一层的节点);将一层的节点都popleft后,将level数组存入res数组(将该层节点值加入结果数组)。python:# Definition for a binary tree node.原创 2021-03-24 15:58:44 · 194 阅读 · 0 评论 -
X数之和
1. 两数之和TwoSum时间:O(n)来自遍历整个数组,每次遍历都查找一次hashset用时O(1) 空间:O(n)来自hashset存储之前遍历过的元素重点在这一段:Hashset对于每一个遍历的元素num,都在之前遍历过的并存入map中的元素们中找有没有target - num,如果有,返回[hashtable[target - num], i], 如果没有,将当前遍历的元素以(key,value) = (nums[i], i)的形式存入map。if target - num in ha原创 2021-03-22 17:54:22 · 312 阅读 · 0 评论 -
运算优先级
移位运算的优先级小于加减运算的优先级,运算时先进行加减!!所以要写成:mid = left + ((right - left) >> 1)reference:https://blog.csdn.net/yiqzq/article/details/81144342原创 2021-03-21 17:52:19 · 369 阅读 · 0 评论 -
编程机试输入输出模板-python3
转载自:https://blog.csdn.net/weixin_43297257/article/details/105591319单输入输入形式16AC输入模板# 输入一个数字,int: 16a = int(input())# 输入一个字符/字符串,str: ACc = input()12345单行输入输入形式2 8 1ABC CSA输入模板# 输入多位数字,直接得到 list[int]:[2,8,1]line = list(map(int,i转载 2021-03-19 22:55:30 · 307 阅读 · 0 评论 -
Python中单引号,双引号,3个单引号及3个双引号的区别
转载自:https://blog.csdn.net/woainishifu/article/details/76105667单引号和双引号在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如str1 = ‘python’str2 = “python”str1和str2是没有任何区别的。我们知道Python以其易用性而著名,所以刚开始看教程学习看到单引号和双引号都可以使用会以为这是Python为了方便程序员,随便用哪个就好,不用担心用错。其实,背后的原因不只是这么简单。举个例子,转载 2021-03-19 22:32:39 · 151 阅读 · 0 评论 -
并查集 - 解决连通性问题
给的输入形式不同,但都是利用并查集,并查集的实现是不变的。1) 323. 无向图中连通分量的数目给定编号从 0 到 n-1 的 n 个节点和一个无向边列表(每条边都是一对节点),请编写一个函数来计算无向图中连通分量的数目。class UnionFind: def __init__(self, n): self.n = n self.part = n self.parent = [x for x in range(n)] self原创 2021-03-17 11:29:14 · 339 阅读 · 0 评论 -
螺旋矩阵生成
螺旋矩阵I:按螺旋顺序返回矩阵所有元素可以模拟螺旋矩阵的路径。初始位置是矩阵的左上角,初始方向是向右,当路径超出界限或者进入之前访问过的位置时,顺时针旋转,进入下一个方向。判断路径是否进入之前访问过的位置需要使用一个与输入矩阵大小相同的辅助矩阵 visited,其中的每个元素表示该位置是否被访问过。当一个元素被访问时,将visited 中的对应位置的元素设为已访问。如何判断路径是否结束?由于矩阵中的每个元素都被访问一次,因此路径的长度即为矩阵中的元素数量,当路径的长度达到矩阵中的元素数量时即为完整.原创 2021-03-17 11:15:10 · 296 阅读 · 0 评论 -
python 方法中的变量与self.变量的区别
原文地址:https://www.cnblogs.com/xdd1997/p/13585295.html>>> class AAA(object):... def go(self):... self.one = 'hello'...>>> class BBB(object):... def go(self):... one = 'hello'...>>> a1 = AAA()>&g原创 2021-03-17 09:20:31 · 512 阅读 · 0 评论 -
nums和nums[:]
python区别nums = A和nums[:] = Anums = A 更改nums这一变量名所指的对象,让nums变量指向A所指向的对象nums[:] = A 对nums指向的对象赋值,把A变量指向的对象的值逐个复制到nums指向的对象中并覆盖nums指向的对象的原来值。nums[:] 等价于 nums[0:len(nums)] 相当于取nums对应对象的一个视图,通过用这个来改变原对象的某几位值。如:A[:2] = [0, 1],改变了A所指向的list对象的前两个值。A = [0 ,1],转载 2021-03-17 09:05:08 · 424 阅读 · 0 评论 -
leetcode系列 - 数据结构 - 2. 树
树的递归问题1)104:maxDepth数的最大深度(数节点数)# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = right# count the number of nodes.原创 2021-03-15 22:42:34 · 114 阅读 · 0 评论 -
使用sorted和OrderedDict 对字典排序
使用sorted和OrderedDict 对字典排序https://blog.csdn.net/qq_34732088/article/details/79917192test = {1: "a", 3: "d", 6: "g", 2: "c", 5: "e", 0: "f", 4: 'b'}# 对字典的key值列表排序,返回列表print(sorted(test.keys()))# 对字典的键值对元组列表排序,按元组的第1个元素排序,也就是 key# 返回的是一个元组列表print(so转载 2021-03-11 12:36:24 · 271 阅读 · 0 评论 -
python正则表达式
细说python正则表达式https://www.jianshu.com/p/147fab022566原创 2021-03-07 14:46:15 · 107 阅读 · 0 评论 -
python牛客网输入输出处理
python 去除字符串中指定字符https://blog.csdn.net/zdz0200/article/details/81453367赛码网和牛客网python输入输出要求https://blog.csdn.net/zdz0200/article/details/82150861牛客网推荐使用sys.stdin.readline()形式输入,输出用print()n, m = map(int, sys.stdin.readline().strip().split())'''输入:2 3原创 2021-03-01 19:47:36 · 1877 阅读 · 0 评论 -
if x is not None, is not, !=
Python中if x&if x is not nonehttps://zhuanlan.zhihu.com/p/80369221python代码if not x: 和if x is not None:和if not x is None:使用https://blog.csdn.net/sasoritattoo/article/details/12451359原创 2021-03-05 21:23:21 · 195 阅读 · 0 评论 -
对ndarray索引的操作
In python, x[(exp1, exp2, …, expN)] is equivalent to x[exp1, exp2, …, expN]. (exp1, exp2, …, expN) is called selection tuple.不同dim用逗号","隔开对某一dim切片取索引用i:j:ki是起始索引,j是结束索引,k是间隔(每k个元素取一个)如果i或j是负数,就是倒数第|i|或|j|个数,index = n + i and n + j where n is the numbe原创 2021-03-03 18:45:27 · 480 阅读 · 1 评论 -
Python取整——向上取整、向下取整、四舍五入取整、向0取整
python:向上取整:math.ceil()向下取整:math.floor()、整数除法"//"(//:无论操作数都是整数,还是包括浮点数,//都会向下取整,当然对于有浮点数的计算,结果仍会以浮点数形式返回)四舍五入:round()——当末尾的前一位为奇数,向远离0取整;为偶数,去尾取整;或言之:奇数进位,偶数去尾向0取整:int()float除法:/java:整数除法是向0取整:形如int e = -5/3; // -1reference:https://blog.csdn.net/w原创 2021-02-25 16:50:58 · 3286 阅读 · 0 评论 -
Python3 数据结构 - 列表
1. 列表1.1. 列表用作数据结构:栈队列1.2. 列表推导式1.3. 嵌套列表2. 其他iterable数据类型tuplesetdict遍历注意事项:reference:https://www.runoob.com/python3/python3-data-structure.html原创 2021-02-24 09:58:43 · 107 阅读 · 0 评论 -
牛客网赛码网输入输出总结(python版)
https://blog.csdn.net/qq_21550189/article/details/101112301原创 2021-02-23 12:02:16 · 871 阅读 · 0 评论 -
PyCharm中Directory与Python package的区别
https://www.cnblogs.com/LancyWu/p/7283889.htmlPython有一种方法将定义函数放在一个文件中,并在脚本中使用它们,这样的文件叫做模块,一个模块中的定义可以被导入到其他模块,或者主模块中。简单来说在python中模块就是指一个py文件,如果我们将所有相关的代码都放在一个py文件中,则该py文件既是程序由是模块,但是程序和模块的设计目的是不同的,程序的目的是为了运行,而模块的目的是为了其他程序进行引用DictionaryDictionary在pycharm中转载 2021-02-23 11:27:40 · 460 阅读 · 0 评论 -
注解python函数传入参数
https://blog.csdn.net/qq_42327755/article/details/87196150注解中最常用的就是 类(str 或 int )类型 和 字符串(如 ‘int>0’)注解不会做任何处理, 只是存储在函数的__annotations__属性(1个字典)中 return 返回的值的注解对于注解, python不做检查, 不做强制, 不做验证, 什么操作都不做. 换而言之, 注释对python解释器没有任何意义, 只是为了方便使用函数的人当你写的函数方法,要转载 2021-02-23 11:18:24 · 611 阅读 · 1 评论 -
py文件作为模块被import和作为py文件运行时,代码的执行顺序
转载自cn_XuYang1.python程序是顺序执行的,而C++中main()是程序的入口例如以下代码,结果如注释所示,这里虽然有个main函数,但是最先输出的不是“main”而是“test1”:#test1print ("test1")def Fun(): print ("Fun")def main(): print ("main") Fun()if __name__ == '__main__': main()'''test1mainFun'''转载 2021-02-12 21:01:40 · 1448 阅读 · 0 评论 -
python数据处理常用函数(持续更新)
enumerate(sequence, [start=0])参数:sequence – 一个序列、迭代器或其他支持迭代对象。start – 下标起始位置。返回值:列出数据和数据下标,一般用在 for 循环当中。for i, data in enumerate(train_loader): inputs, labels = data print(inputs,shape) print(labels.shape) break# print output: # torch.Size([.原创 2021-02-12 20:59:01 · 1459 阅读 · 0 评论 -
python用,进行多变量赋值
# 多变量赋值 - 数组形式data = ['hello', 18, [2002, 2, 2]]name, age, birth = dataprint(name)print(age)print(birth)# 多变量赋值 - 元组形式data = ('hello', 18, [2002, 2, 2])name, age, birth = dataprint(name, age, birth)# print(name, age, birth, sep="\n")# 多变量赋值 -转载 2021-02-12 19:44:17 · 253 阅读 · 0 评论 -
Python——迭代器&可迭代对象 iterator vs iterable
Python IteratorsAn iterator is an object that contains a countable number of values.An iterator is an object that can be iterated upon, meaning that you can traverse through all the values.Technically, in Python, an iterator is an object which implement原创 2021-02-09 17:36:30 · 163 阅读 · 0 评论 -
Difference between modes a, a+, w, w+, and r+ in built-in open function?
refrerence:https://stackoverflow.com/questions/1466000/difference-between-modes-a-a-w-w-and-r-in-built-in-open-function原创 2021-02-03 12:01:12 · 93 阅读 · 0 评论 -
numpy
判断array是多少维度(ndarray,n=?):数最前面的方括号有几个e.g. 【【【【 ----> 4darray1. numpy的属性array = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]])array.size #9array.shape #(3, 3)array.ndim #2array.dtype #int322. numpy运算按位运算operation between two arrays:原创 2021-01-31 18:49:42 · 116 阅读 · 0 评论 -
Python 直接赋值、浅拷贝和深度拷贝
借鉴:https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.htmlb = a: 赋值引用,a 和 b 都指向同一个对象。b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。Note: 深度拷贝需要import copy...原创 2020-12-07 18:25:54 · 75 阅读 · 0 评论 -
map()/reduce() python
借鉴:https://www.runoob.com/python/python-func-map.htmlhttps://www.liaoxuefeng.com/wiki/1016959663602400/1017329367486080https://www.geeksforgeeks.org/reduce-in-python/map()map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。>&g原创 2020-11-26 19:28:22 · 99 阅读 · 0 评论 -
错误处理Python
借鉴:廖雪峰python教程《错误处理》python3官方教程《Exception hierarchy》:https://docs.python.org/3/library/exceptions.html#exception-hierarchytrytry:#do somethingexcept built-in exceptions class name as e:#捕获错误类名#do something like: print(e), 会打印具体错误内容finally:#do som原创 2020-11-24 15:50:43 · 97 阅读 · 0 评论