python3 内置函数之filter()

filter函数

A—— 函数描述:
filter()函数是用于过滤序列,或是不符合特定条件的元素,并返回符合特定条件的元素而组成的新列表。
B——语法表示:
filter(function, iterable)
该函数接收两个参数,第一个是函数(判断函数), 第二个是待筛选序列(可迭代的对象),序列中的元素将作为参数传递给函数以进行判断(返回True或是False),最后将返回(True)的元素放到待返回列表中。
Python3.x 返回的是迭代器对象,Python2.7返回的是列表。
C——filter()函数用例:
1,筛选给出列表中的奇数:

>>>>>>>第一段代码
def fun1(a):
    return a % 2 == 1
           #用pycharm IDE时在调用函数时需要空两格

newlist1 = filter(fun1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist1)
<filter object at 0x00000000022F66D0> #返回的只是一个函数,return返回的是函数调用

>>>>>>>>第二段代码
def fun1(a):
    return a % 2 == 1
           #用pycharm IDE时在调用函数时需要空两格

newlist1 = filter(fun1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist1)
alist1 = list(newlist1)                 #-------将返回的可迭代对象转换为列表
print(alist1)                      #--------打印
<filter object at 0x00000000023066D0>   #--------返回的是函数
[1, 3, 5, 7, 9]                   #-----返回符合条件的转化为列表的对象

2,列出开方是整数的元素

>>>>>>>第三段代码
import math               #---------引用math数学模块
def sqr1(x):       #--------定义循环函数
    return math.sqrt(x) % 1 ==0
                #用pycharm IDE时在调用函数时需要空两格

newlist = filter(sqr1, range(1, 101))              #----利用filter()函数筛选序列
print(newlist)               #---调用的是循环函数,故返回的也是一个函数而已
newlist1 = list(newlist)          #----------将可迭代对象转换为列表
print(newlist1)             #------打印列表
----------------------
<filter object at 0x0000000002636A30>      #打印出在内存中调用产生的新的函数
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]      #打印筛选出的元素

天下

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页