
Python
记录基本的Python语法和各种库的使用。
如化雨
计算机专业,研二在读,目前在准备机器学习算法工程师面试。有任何问题,或者聊天交友,欢迎随时讨论交流,可加V:a1158378958。
展开
-
Python的重要模块:collections (namedtuple、defaultdict、deque、Counter、OrderedDict、ChainMap)
collections 模块作用包含双端队列 deque、默认字典 defaultdict、命名元组 namedtuple、计数器 Counter、Ordereddict 和 ChainMap 等重要模块。他们是增强版的高级数据结构。1. tuple 功能为了讲解 namedtuple,所以先介绍 tuple 的功能,以便分析两者异同。tuple 是一个不可变的元组,可迭代对象(内部实现了__iter__,或者__getitem__ 方法),可以进行拆包、tuple 的不可变性不是绝对的。user原创 2020-07-05 15:16:43 · 422 阅读 · 0 评论 -
Python中判断字符是否为字母、数字、字母和数字组合,验证回文串(LeetCode125)
判断字符串是否为字母、数字函数str.isdigit()判断字符是否为数字,函数str.isalpha()判断字符是否为字母,函数isalnum()判断字符是否为数字字母组合。上代码:str1 = '123'str2 = 'abc'str3 = '123abc'error = 'a 1 !'print(str.isdigit(str1), str.isdigit(str2)) ...原创 2020-05-03 12:42:34 · 15162 阅读 · 3 评论 -
LeetCode53:最大子序和(分治思想,Python3实现)
最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。分治法求解思路:将原问题转化为求解子问题,通过子问题的解求解原问题的解。原问题:求整数数组中,具有最大和的连续子数组。子问题:取数组中位于...原创 2020-04-29 11:47:25 · 365 阅读 · 0 评论 -
Python 中的特殊方法(定制类):__str__、__cmp__、__len__、数学运算、类型转换、@property运用、__slots__和__call__函数
Python中的特殊方法Python的特殊方法定义在 class中,不需要直接进行显示调用,Python的某些操作符或者函数会自动调用对应的特殊方法。这些方法如:__str__()、__len__()、__cmp__()等。下面这些更全面:正确实现特殊方法:首先只需要编写用到的特殊方法;其次有关联性的特殊方法必须都实现,如编写了特殊方法 __getattr__(),那么特殊方法 __set...原创 2020-04-24 23:54:28 · 618 阅读 · 0 评论 -
Python 中类的继承:属性初始化、类型判断、多态、多继承和对象信息的获取
属性初始化:一定要用super(Teacher, self).__init__(name, gender)去初始化父类,否则,继承自 Person 的 Teacher 将没有 name 和 gender。class Person(object): def __init__(self, name, gender): self.name = name sel...原创 2020-04-23 00:26:07 · 531 阅读 · 0 评论 -
Python 面向对象编程:类的创建与初始化、实例属性与方法、类属性与方法
1. 类的创建并实例化类的定义:在Python中,类通过 class 关键字定义。按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。下面是一个简单的类创建并实例化:class Person(object): passsqz = Person()属性赋值:由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值...原创 2020-04-18 17:59:26 · 1152 阅读 · 0 评论 -
Python中的模块和包:模块的(动态)导入、__future__模块使用
包的作用不同的开发人员写了相同名字的模块,可以将同名的模块放入不同的包中进行管理。引用一个完整的模块代码如下:import sqz.util在文件系统当中,包就是一个文件夹,而模块是一个.py文件。包可以有多级,嵌套多个文件夹,每一级文件夹中必须有一个__init__.py文件。Python 中模块的导入导入系统中自带模块math,并访问函数pow():import mathmat...原创 2020-04-17 12:34:23 · 801 阅读 · 0 评论 -
Python 中的闭包、匿名函数、decorator 装饰器与python的偏函数
Python中的闭包def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。在函数内部定义的函数和外部定义的函数是一样的,只是他们无法被外部访问。闭包的特点是返回的函数还引用了外层...原创 2020-04-09 13:18:36 · 317 阅读 · 0 评论 -
Python 函数式编程,Python中内置的高阶函数:map()、reduce()、filter()与sorted(),Python中返回函数
函数式编程是一种编程范式,比函数更高层次的抽象。函数式编程将计算视为函数而非指令。纯函数式编程:不需要变量,没有副作用,测试简单。支持高阶函数,代码简洁。Python 支持的函数式编程不是纯函数式编程,允许有变量。支持高阶函数:函数也可以作为变量传入。支持闭包:有了闭包,就可以返回函数。有限度的支持匿名函数。Python 中的高阶函数Python中的函数名可以看做一个...原创 2020-04-07 11:13:48 · 278 阅读 · 0 评论 -
Python 函数的可变参数、切片、迭代和列表生成式
函数的可变参数def fun(*args): print(args)让一个函数能接受任意个参数,可以定义一个可变参数。可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数。Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。...原创 2020-04-02 17:24:05 · 593 阅读 · 0 评论 -
剑指 Offer 面试题45:把数组排成最小的数——Python内置函数 map()、__lt__()、join()、sorted()
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。输出结果可能非常大,所以需要返回一个字符串而不是整数。拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0。示例1:输入: [10,2]输出: "102"示例2:输入: [3,30,34,5,9]输出: "3033459"解题代码:class Compare(st...原创 2020-04-01 00:25:42 · 370 阅读 · 0 评论 -
Python中的堆实现:heapq 模块——利用堆结构实现快速访问数据流中的中位数
堆结构堆结构是一种优先队列,可以以任意顺序添加对象,并随时查找或删除最小(大)的元素,或者查找和删除前 K 个最小(大)元素。相比于列表方法min() / max(),这样做的效率要高得多。堆结构是一种特殊的完全二叉树(除了叶子节点层外,其余层节点数均达到最大值,而叶子节点层所有节点都集中在左侧)。根节点的值不大于(小于)其子节点的值,并且子节点也服从这种特性。根节点值不大于子节点的堆称为小根...原创 2020-03-31 11:57:41 · 421 阅读 · 0 评论 -
Python 的内置数据类型:列表 list、元组 tuple、字典 dict、集合 set.
Python数据类型:listlist 是一种有序集合,由于Python是动态语言,所以 list 中包含的元素并不要求都必须是同一种数据类型,我们完全可以在 list 中包含各种数据。访问列表中最后一个元素:L[-1],索引值为 -1。同理倒数第二个元素索引值为 -2,以此类推。list 中添加元素,第一个办法是用 list 的 append() 方法,把新同学追加到 list 的末尾。...原创 2020-03-30 23:32:16 · 416 阅读 · 0 评论 -
Python基础语法:数据类型、进制转换、转义字符、字符编码、整数与浮点数运算规则、布尔型运算规则
本人使用的python版本为:Python 3.7.4Python中的基本数据类型整数:和数学上的表示一样,如 1, 3, 100. 有时也用十六进制表示,如 0xffaa, 0x09ad等浮点数:也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的。当浮点数很小或者很大时,要使用科学技术法来进行表示,如 1.98e5 表示 1.98∗1051.98*1...原创 2020-03-28 16:24:11 · 459 阅读 · 0 评论