当前位置: 首页 > 后端技术 > Python

Python代码阅读(五):根据过滤器拆分列表

时间:2023-03-25 23:00:39 Python

本文阅读的代码实现了通过过滤器拆分列表的功能。本文阅读的代码片段来自30-seconds-of-python。bifurcatedefbifurcate(lst,filter):返回[[xfori,xinenumerate(lst)iffilter[i]==True],[xfori,xinenumerate(lst)iffilter[i]==False]]#EXAMPLESbifurcate(['beep','boop','foo','bar'],[True,True,False,True])#[['beep','boop','bar'],['foo']]bifurcate函数通过filter过滤器定义的内容将输入列表lst分为两组。将filter中True对应的lst项放入结果的第一个列表,将filter中False对应的lst项放入结果的第二个列表。enumerateenumerate(iterable,start=0)enumerate函数接收一个可迭代对象并返回一个可迭代对象。迭代器对象每次迭代返回一个元组,元组包括一个索引和接收到的可迭代对象的可迭代值。start参数用于设置序号的初始值,默认为0。示例用法是:>>>seasons=['Spring','Summer','Fall','Winter']>>>list(enumerate(seasons))[(0,'Spring'),(1,'Summer'),(2,'秋季'),(3,'冬季')]>>>list(enumerate(seasons,start=1))[(1,'春季'),(2,'夏季'),(3,'Fall'),(4,'Winter')]enumerate函数实现逻辑等价于如下代码:defenumerate(sequence,start=0):n=startforeleminsequence:yieldn,elemn+=1listcomprehension该函数使用listcomprehension来判断lst中的值对应的filter的值,并生成对应的分组列表。列表推导的简单介绍可以参考《Python代码阅读:过滤掉列表中的唯一值》中的“列表推导”部分。