Python学习
Sarah_mq
这个作者很懒,什么都没留下…
展开
-
【python数据结构与算法】列表实现栈及栈的应用
栈的数据结构Python的基本数据类型list是实现栈的基础通过使用列表的方法,可以实现栈的特性:列表访问实际上就是对数组的访问,python数组访问非常方便,可以直接通过指定下标分片。因此,我们有两种实现方式:将列表首端作为栈顶或列表尾端作为栈顶。这两种实现的算法复杂度是不一样的,因为列表的内存地址是连续的,列表对象寻址实际上是找到列表开始的元素所在的内存地址,尾端实现的栈可以直接在列表尾端追加或删除元素,首端实现的栈,需要将所有元素在内存中移动一遍,因此算法复杂度是O(n)尾端实现栈顶的p原创 2020-12-05 18:27:15 · 554 阅读 · 0 评论 -
【Python语法】理解装饰器(预备知识:闭包)
1. python的开放封闭原则:开放:可以为函数增加新功能封闭:不能改变原函数的代码;要通过原函数的函数对象来调用函数尝试实现下面这个需求:为huaping()函数新增功能,保证其满足开放封闭原则def huaping(): print('插花功能')尝试1:直接在函数中新增功能,违反了封闭原则中不能改变原函数代码的要求def huaping(): print('插花功能') print('观赏功能’) huaping()尝试2:定义一个新的函数,新的函数去原创 2020-11-30 17:41:27 · 339 阅读 · 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 · 284 阅读 · 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 · 452 阅读 · 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 · 514 阅读 · 0 评论 -
【Pyhon语法】一行代码把单词列表拼接成字符串
字符串的处理千姿百态,有时候会遇到这样一个需求:输入:[‘a’,‘p’,‘p’,‘l’,‘e’]输出:[apple]我们知道字符串变量可以直接用运算符’+‘连接,所以我们没有必要用for循环对元素进行累加:seq=[]list=['a','b','c','d','e']word = ''for item in list: word += itemseq.append(wor...原创 2020-02-12 00:12:22 · 836 阅读 · 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 · 1734 阅读 · 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 · 235 阅读 · 0 评论