欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python根据过滤器拆分列表

程序员文章站 2022-06-27 19:02:09
目录1. bifurcate2. enumerate3. 列表推导式1. bifurcatedef bifurcate(lst, filter): return [ [x for i, x i...

1. bifurcate

def bifurcate(lst, filter):
  return [
    [x for i, x in enumerate(lst) if filter[i] == true],
    [x for i, x in enumerate(lst) if filter[i] == false]
  ]

# examples
bifurcate(['beep', 'boop', 'foo', 'bar'], [true, true, false, true]) # [ ['beep', 'boop', 'bar'], ['foo'] ]


bifurcate函数通过一个过滤器filter定义的内容,将输入列表lst分成两组。将filter中为true的对应的lst的项放入结果的第一个列表中,将filter中为false的对应的lst的项放入结果的第二个列表中。

2. enumerate

enumerate(iterable, start=0)


enumerate函数接收一个可迭代对象,并返回一个迭代对象。该迭代对象每次迭代返回一个元组,该元组包括一个序号和接收的可迭代对象的迭代值。start参数用于设定序号的初始值,默认为0。

示例使用为:

>>> seasons = ['spring', 'summer', 'fall', 'winter']
>>> list(enumerate(seasons))
[(0, 'spring'), (1, 'summer'), (2, 'fall'), (3, 'winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'spring'), (2, 'summer'), (3, 'fall'), (4, 'winter')]


enumerate函数的实现逻辑相当于如下代码:

def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1

3. 列表推导式

该函数使用列表推导式判断lst里面值对应位置的filter的值,并生成对应的分组列表。

列表推导式的简单介绍可以查看:python 实现过滤掉列表中唯一值的章节。

到此这篇关于python根据过滤器拆分列表的文章就介绍到这了,更多相关python根据过滤器拆分列表内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!