
Python学习
Sarah_mq
这个作者很懒,什么都没留下…
展开
-
【python数据结构与算法】列表实现栈及栈的应用
栈的数据结构 Python的基本数据类型list是实现栈的基础 通过使用列表的方法,可以实现栈的特性: 列表访问实际上就是对数组的访问,python数组访问非常方便,可以直接通过指定下标分片。 因此,我们有两种实现方式:将列表首端作为栈顶或列表尾端作为栈顶。 这两种实现的算法复杂度是不一样的,因为列表的内存地址是连续的,列表对象寻址实际上是找到列表开始的元素所在的内存地址,尾端实现的栈可以直接在列表尾端追加或删除元素,首端实现的栈,需要将所有元素在内存中移动一遍,因此算法复杂度是O(n) 尾端实现栈顶的p原创 2020-12-05 18:27:15 · 602 阅读 · 0 评论 -
【Python语法】理解装饰器(预备知识:闭包)
1. python的开放封闭原则: 开放:可以为函数增加新功能 封闭:不能改变原函数的代码;要通过原函数的函数对象来调用函数 尝试实现下面这个需求: 为huaping()函数新增功能,保证其满足开放封闭原则 def huaping(): print('插花功能') 尝试1:直接在函数中新增功能,违反了封闭原则中不能改变原函数代码的要求 def huaping(): print('插花功能') print('观赏功能’) huaping() 尝试2:定义一个新的函数,新的函数去原创 2020-11-30 17:41:27 · 386 阅读 · 0 评论 -
【Python语法】可迭代对象、迭代器对象、迭代器、生成器:从傻傻分不清楚到清清楚楚
目录1. 可迭代对象2. 迭代器对象3. 迭代器4. 生成器 1. 可迭代对象 可以转换为不依赖索引取值的容器,通过__ iter __()方法生成迭代器对象 列表、字典、集合、字符串、元组,这类容器都是可迭代对象 # 定义不同的容器,他们都是可迭代对象 test_dict = {1: 'a', 2: 'b', 3: 'd'} test_list = [100, 200, 300, 400] test_set = {21, 22, 23, 24} # 可迭代对象,通过__iter__()方法获得对应的可迭原创 2020-11-28 16:44:11 · 326 阅读 · 0 评论 -
【Python语法】循序渐进理解闭包
循序渐进理解闭包1. 闭包初接触1.1 闭包基本语法结构:1.2 明确变量作用域:2. 从for循环开始2.1 python for循环特性:没有域的概念2.2 修改代码,让返回的flist具有递增相乘的结果:2.3 使用闭包3. 玩棋盘游戏4. 闭包特性的另一种实现 1. 闭包初接触 在一个内部函数中,对外部作用域的变量进行引用,(并且一般外部函数的返回值为内部函数),那么内部函数就被认为是闭包。 1.1 闭包基本语法结构: # 外部函数返回内部函数 def outside(attr1): # 内原创 2020-11-26 22:47:30 · 491 阅读 · 0 评论 -
【Python语法】Max,Min函数从入门到精通
Max函数入门 查看源代码 def max(*args, key=None): # known special case of max """ max(iterable, *[, default=obj, key=func]) -> value max(arg1, arg2, *args, *[, key=func]) -> value With a ...原创 2020-02-13 17:21:21 · 570 阅读 · 0 评论 -
【Pyhon语法】一行代码把单词列表拼接成字符串
字符串的处理千姿百态,有时候会遇到这样一个需求: 输入:[‘a’,‘p’,‘p’,‘l’,‘e’] 输出:[apple] 我们知道字符串变量可以直接用运算符’+‘连接,所以我们没有必要用for循环对元素进行累加: seq=[] list=['a','b','c','d','e'] word = '' for item in list: word += item seq.append(wor...原创 2020-02-12 00:12:22 · 912 阅读 · 0 评论 -
输入序列的两种方式:input()与readline()
处理空格分隔的序列 输入的文本将作为字符串存入变量中,如果我们处理的是数字序列,需要在赋值给列表变量时,转化成int类型的变量 sn=list(map(int,input('Please input some numbers: \n').split())) print(sn,'\n') 处理回车分隔的序列 要把换行输入的序列存入变量,需要使用循环语句。split()函数不可少,不带任何参数表示按...原创 2020-02-09 18:18:33 · 1841 阅读 · 0 评论 -
【Python语法】reduce函数运算优先级的问题
reduce函数常用来对序列求和,但是在使用过程中,出了点小问题 首先看一个正常的求和表达式: reduce(lambda x,y:x+y,range(1,101)) #对1~100的数求和 如果我想求1~10的平方和呢: reduce(lambda x,y:x**2+y**2,range(1,11)) 运行后发现结果不对: 25800022600047052140012507345164607...原创 2020-02-08 21:18:44 · 274 阅读 · 0 评论