![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
effective python 笔记
cy^2
想开就健康了
展开
-
Effective Python之第27条:用列表推导取代map与Filter
列表推导:可根据某个序列或可迭代对象派生出一份新的列表。 列表推导要比内置的map与filter函数清晰,因为其不用另外定义lambda表达式。 a = [1,2,3,4] # 求a列表下每个元素的平方 squ = [x**2 for x in a] # map用法:alt = map(lambda x:x**2,a) 列表推导可以很容易地跳过原列表中的某些数据,例如改用map实现,必须搭配filter才能实现。 a = [1,2,3,4] # 求a列表下偶数元素的平方 even_squ = .原创 2022-03-27 22:39:52 · 578 阅读 · 0 评论 -
Effective Python之第8条:用zip函数同时遍历多个迭代器
内置的zip函数可以同时遍历多个迭代器 zip会创建惰性生成器,让其每次只生成一个元组,所以无论输入的数据有多长,都是只能一个个去处理 若提供的迭代器的长度不一致,只要如何一个迭代完毕,就会停止 若按照最长的那个迭代器来遍历,需改用内置的itertools模块中zip_longest函数 若想退回为迭代器组合之前的状态时,利用zip(*zip()) 来“解压” a = [1,2,3] b = [4,5,6] c = [4,5,6,7,8] # 返回一个对象 <zip object at 0x1..原创 2022-04-06 22:29:49 · 655 阅读 · 0 评论 -
Effective Python之第7条:尽量用enumerate取代range
要点 enumerate 函数可以用简洁的代码迭代iterator,而且可以指定当前这轮循环的序号。 无需先通过range指定下标的取值范围,然后用下标去访问序列,而是应该直接用enumerate迭代。 可以通过enumerate 的第二个参数指定起始序号(默认为0). l = ['a','b','c','d'] for i in range(len(l)): print(f'{i+1}:{l[i]}') for i ,label in enumerate(l,1): print(原创 2022-03-20 22:05:30 · 468 阅读 · 0 评论