1.使用filter和lambda函数
filter(fun, seq)函数对seq里的每个元素执行fun(),并返回值为true的元素放在一个iterator里
例如在一个列表里找出所有奇数可以这样写:
a = [1,2,3,4,5,6,7,8]
print(list(filter(lambda x: x%2 , a)))
>>> ================================ RESTART ================================
>>>
[1, 3, 5, 7]
2.列表解析,效率比filter高,比for循环更是高两倍
[expr for iter_val in iterable]
[expr for iter_val in iterable if cond_expr]
第一种,首先迭代iterable里的所有内容,每一次迭代,都把iterable里相应的内容放到iter_val,再在表达式中应用该iter_val的内容,最后用表达式的计算值返回一个列表
第二种,则是满足条件的才执行迭代操作
上面求奇数同样可以这样写:
b = [val for val in a if val%2]
print(b)<pre name="code" class="python">>>> ================================ RESTART ================================
>>>
[1, 3, 5, 7]
if 后面可接条件表达式,不如元素长度,比如数字大小等
后记
大家如果觉得小编的代码有用,可以多多关注小编,
同时小编的公众号也开通了,大家可以关注下,后续进行粉丝回馈,大家一起学习python叭
打赏小编点这里哦