时间:2021-05-22
切片
从list或tuple中取部分元素。
list = [1, 2, 3, 4]list[0 : 3] # [1, 2, 3]list[-2 : -1] # -1表示最后一个,[3, 4]list[1 :: 2] # index = 1开始,每两个取一个[2, 4]list[:] # 复制list,[1, 2, 3, 4]# 针对tuple,切片同样适用iterable、iterator
可迭代,迭代器,集合类型数据可迭代但不是迭代器,可通过iter()转变为迭代器。
可迭代对象可使用for-in语句遍历,判断x是否可迭代:isinstance(x, Iterable)。
列表生产式
高效创建列表,见代码示例:
# range转listlist(range(1, 5)) # [1, 2, 3, 4][x * x for x in range(1, 5)] # [1, 4, 9, 16][x * x for x in range(1, 5) if x % 2 == 0] # [4, 16][m + n for m in 'ABC' for n in 'XYZ'] # ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ'][s.lower() for s in ['Hello', 'World', 'IBM', 'Apple']] # like mapgenerator
isinstance(generator, Iterable) = True,可使用for-in语句,或者使用next方法。
g = (x * x for x in range(10))next(g) # 0next(g) # 1next(g) # 4for item in g: print(item) # 9 16 ... 81generator函数
generator函数本质是一个有状态的函数,遇到yield语句时会暂时返回。
# 有yield语句,表明时generator函数def gen_fn(): init = 0 while init < 10: yield init init += 1 return 'done'call = gen_fn() # 获得可迭代对象callnext(call) # 0next(call) # 1# 每次调用generator函数,得到的是一个新的generator# for-in无法获得generator的返回值'done'for item in gen_fn(): print(item) # 0 1 ... 9高阶函数
参数是函数的函数即是高阶函数,可对比数学概念:g(x) = f(x) + 1,g(x)即高阶函数。
返回函数做回函数返回值
闭包概念:包含环境成分(自由变量)和控制成分的实体(lambda表达式,函数)。
def lazy_sum(*args): ax = 0 def sum(): nonlocal ax for n in args: ax = ax + n return ax return sumfn = lazy_sum(1, 2, 3) # ax + sum构成了闭包fn() # 6fn() # 12匿名函数
即lambda表达式。
装饰器
函数包函数的语法糖?
def log(fn): def call(*args, **kw): print('call %s():' % fn.__name__) return fn(*args, **kw) return call# @log的作用等同now = log(now)@logdef now(): print('2018-03-18')now() # call now(): 2018-03-18偏函数
把一个函数的某些参数给固定住,返回一个新的函数。类似柯里化,但更强大?
from functools import partialbinary_int = partial(int, base = 2)binary_int('1000000') # 64总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
虽然用python用了很久了,但是主要还是写一些模型或者算子,对于python中的高级特性用的不多,但是时常阅读大牛的代码或者框架源码,其中python特性应用
写在之前「装饰器」作为Python高级语言特性中的重要部分,是修改函数的一种超级便捷的方式,适当使用能够有效提高代码的可读性和可维护性,非常的便利灵活。「装饰器
本文分析了python3新特性函数注释FunctionAnnotations用法。分享给大家供大家参考,具体如下:Python3.X新增加了一个特性(Featu
本文实例讲述了Python基类函数的重载与调用方法。分享给大家供大家参考。具体分析如下:刚接触Python语言的时间不长,对于这个语言的很多特性并不是很了解,有
Turtle库是Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下,常用函数有以下几种:画笔控制函数penup():抬起画笔