python3中的filter()函数

filter() 函数是一个对于可迭代对象的过滤器,过滤掉不符合条件的元素,返回的是一个迭代器,如果要转换为列表,可以使用 list() 来转换。
该函数接收两个参数,第一个为函数的引用或者None,第二个为可迭代对象,可迭代对象中的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到迭代器中
下面看下fiter()的用法:
第一个参数为None:

[Python] 纯文本查看 复制代码

?


1

2

3

4

my_list = [1, ‘‘, 2, ‘ ‘, 3, 3]

new_list = list(filter(None, my_list))    # 注意:为None时,仅仅是过滤掉‘‘, 而不是空的字符串‘ ‘

print(new_list)

# 结果为:[1, 2, ‘ ‘, 3, 3]

第二个参数为函数的引用:

[Python] 纯文本查看 复制代码

?


1

2

3

4

5

6

7

8

# 过滤出列表中的偶数

def is_even(num):

        return num % 2 == 0

new_list = list(filter(is_even, list(range(1, 11))))

print(new_list)

# 结果为:[2, 4, 6, 8, 10]

更多技术资讯可关注:gzitcast

原文地址:https://www.cnblogs.com/heimaguangzhou/p/11629720.html

时间: 2024-10-04 23:00:26

python3中的filter()函数的相关文章

Python3中的super()函数详解

关于Python3中的super()函数 我们都知道,在Python3中子类在继承父类的时候,当子类中的方法与父类中的方法重名时,子类中的方法会覆盖父类中的方法, 那么,如果我们想实现同时调用父类和子类中的同名方法,就需要使用到super()这个函数,用法为super().函数名() 下面是一个例子: class A1(): def go(self): print("go A1 go") class A2(): def go(self): print("go A2 go&qu

python3中的 zip()函数 和python2中的 zip()函数 的区别

python3中的 zip()函数 和python2中的 zip()函数 的区别: 描述: zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象. 如果各个可迭代对象的元素个数不一致,则返回的对象长度与最短的可迭代对象相同. 利用 * 号操作符,与zip相反,进行解压. zip() 函数语法: zip(iterable1,iterable2, ...) 参数说明: iterable -- 一个或多个可迭代对象(字符串.列表.元祖.字典) 返回

Python3版本中的filter函数,map函数和reduce函数

一.filter函数: filter()为已知的序列的每个元素调用给定的布尔函数,调用中,返回值为非零的元素将被添加至一个列表中 1 def f1(x): 2 if x>20: 3 return True 4 else: 5 return False 6 7 l1 = [ 1, 2, 3, 42, 67, 16 ] 8 print(filter(f1, l1)) 9 #输出如下: 10 #<filter object at 0x000000000117B898> 11 l2 = filt

Python中的filter()函数的用法

转载自:脚本之家 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素. 例如,在一个list中,删掉偶数,只保留奇数,可以这么写: def is_odd(n): return n % 2 == 1 filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]) # 结果: [1, 5

数组中的filter函数,递归以及一些应用。

当我们用一个东西时候我们必须知道的是?why---where----how---when.一个东西我们为什么用?在哪用?怎么用?何时用?而不是被动的去接受一些东西.用在js里边我觉得也会试用.一直追求源生js,虽然也都背过好多东西,但是随着时间的流逝,工作的繁忙都忘了,有时甚至一点印象都没有,这让我开始思考我的学习方法了已经思维方式了.我们要记得不是简单的那个单词然后开始联想这个单词有什么用?一定是我要做什么事情?然后联想到谁可以做.带有目的性的学习. 现在有十个人(也就是数组)需要我们把属虎的

python3中的range函数返回的是列表吗?

注意,这里说的Python3里面的range函数,和Python2是不同的,返回的不是列表,是可迭代对象. 在python3中,如果执行下面的语句 print(range(10)) 得到结果是 range(0,10) ,而不是期望的[0,1,2,3,4,5,6,7,8,9].但是如果换一种方式 print(list(range(10))) 得到的结果却是 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 那为什么会这样呢?其实在Python3中range()函数返回的对象很像一个列表

为什么print在python3中变成了函数?

转自:http://www.codingpy.com/article/why-print-became-a-function-in-python-3/ 在Python 2中,print是一个语句(statement):而在Python 3中变成了函数(function).很多Python用户都会问,为什么Python 3将print变成了函数呢?本文就是Python核心开发者Brett Cannon对此的解释. 今年初Python决定迁移到Github,就是由Brett Cannon征求Pyth

python3中的range函数

奇怪的现象 在paython3中 print(range(10)) 得出的结果是 range(0,10) ,而不是[0,1,2,3,4,5,6,7,8,9] ,为什么呢? 官网原话: In many ways the object returned by range() behaves as if it is a list, but in fact it isn’t. It is an object which returns the successive items of the desire

python3中的zip函数

zip函数的作用: zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象. 这个可迭代对象可以使用循环的方式列出其元素 若多个可迭代对象的长度不一致,则所返回的列表与长度最短的可迭代对象相同. matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] 使用*号拆分list,zip对每个list打包成tuple >>> list(zip(*matrix)) [ (1, 4, 7), (2, 5, 8