切片
从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转list list(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 map
generator
isinstance(generator, Iterable) = True
,可使用for-in语句,或者使用next方法。
g = (x * x for x in range(10)) next(g) # 0 next(g) # 1 next(g) # 4 for item in g: print(item) # 9 16 ... 81
generator函数
generator函数本质是一个有状态的函数,遇到yield语句时会暂时返回。
# 有yield语句,表明时generator函数 def gen_fn(): init = 0 while init < 10: yield init init += 1 return 'done' call = gen_fn() # 获得可迭代对象call next(call) # 0 next(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)即高阶函数。
- map
# map(func, *iterables, ...) i = map(lambda x : x * x, [1, 2, 3]) # 返回Iterator list(i) # [1, 4, 9]
- reduce
from functools import reduce reduce(lambda previous, x : previous + x, [1, 2, 3, 4]) # 10
- filter
i = filter(lambda x : x % 2 == True, [1, 2, 3, 4]) list(i) # [1, 3]
- sorted 默认升序,通过key参数决定排序规则。
sorted([1,3,2], key = lambda x : -x) # [3, 2, 1]
返回函数做回函数返回值
闭包概念:包含环境成分(自由变量)和控制成分的实体(lambda表达式,函数)。
def lazy_sum(*args): ax = 0 def sum(): nonlocal ax for n in args: ax = ax + n return ax return sum fn = lazy_sum(1, 2, 3) # ax + sum构成了闭包 fn() # 6 fn() # 12
匿名函数
即lambda表达式。
装饰器
函数包函数的语法糖?
def log(fn): def call(*args, **kw): print('call %s():' % fn.__name__) return fn(*args, **kw) return call # @log的作用等同now = log(now) @log def now(): print('2018-03-18') now() # call now(): 2018-03-18
偏函数
把一个函数的某些参数给固定住,返回一个新的函数。类似柯里化,但更强大?
from functools import partial binary_int = partial(int, base = 2) binary_int('1000000') # 64
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月18日
2024年11月18日
- 陈洁仪.1994-心痛【立得唱片】【WAV+CUE】
- 车载必备专用超级选曲《劲爆中文DJ》2CD[WAV+CUE]
- 群星《民歌流淌60年(黑胶CD)》2CD[WAV+分轨]
- 群星《美丽时光》紫银合金AQCD[WAV+CUE]
- 群星《12大巨星畅销精选集》[WAV分轨][1.1G]
- 华语排行冠军曲《百事音乐风云榜》[WAV+CUE][1G]
- 奔驰汽车音乐圣经《醇声典范[白金嗓子] 男极声》音乐传真[WAV+CUE][1G]
- 陈影《如影随形HQ》头版限量[低速原抓WAV+CUE]
- 黄乙玲1996-心痛酒来洗[台湾首版][WAV+CUE]
- 曾庆瑜1990-随风而逝[日本东芝1A1首版][WAV+CUE]
- 群星.2015-凭着爱ADMS2CD【华纳】【WAV+CUE】
- 陈冠希.2017-一只猴子3部曲【摩登天空】【WAV+CUE】
- 金元萱.1996-迷迷糊糊【宝丽金】【WAV+CUE】
- 齐秦《燃烧爱情》马来西亚版[WAV+CUE][1G]
- 动力火车《结伴》2024最新 [FLAC分轨][1G]