python | 三个python内置函数

smile唐

共 1264字,需浏览 3分钟

 ·

2020-12-18 18:21


01filterfilter()filter()可以从序列中过滤出符合条件的元素,保存到一个新的序列中参数:    1.函数,根据该函数来过滤序列(可迭代的结构)
    2.需要过滤的序列(可迭代结构)
返回值:

    过滤后的新序列(可迭代的结构)


filter(function, iterable)


例:

def func(lst):
   if lst % 3 == 0:
       return True
   return False



lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
res = list(filter(func, lst))
print(res)


输出结果:

[3, 6, 9]


func是作为参数传递进 filter()函数中,filter()调用完毕后,func就已经没用了




关于filter()方法, python3和python2有一点不同

Python2.x 中返回的是过滤后的列表, 而 Python3 中返回到是一个 filter 类。

filter 类实现了 __iter__ 和 __next__ 方法, 可以看成是一个迭代器, 有惰性运算的特性, 相对 Python2.x 提升了性能, 可以节约内存。



02mapmap()

map()函数可以对可迭代对象中做所有元素做指定的操作,然后将其添加到一个新的对象中返回

参数:    1.函数,根据该函数来过滤序列(可迭代的结构)
    2.一个或多个序列
返回值:

    新序列(可迭代的结构)


map(function, iterable, ...)


例:

def add(n):
   return n + 1



lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
res = list(map(add, lst))
print(res)


输出结果:

[2, 3, 4, 5, 6, 7, 8. 9, 10]



03zipzip()zip()可以从参数中的多个迭代器取元素组合成一个新的迭代器参数:    元组、列表、字典等迭代器返回值:

    一个 zip 对象,其内部元素为元组


zip([iterable, ...])


例1:

zip()函数有单个参数

lst1 = [1, 2, 3, 4, 5]
res1 = zip(lst1)
print(list(res1))

输出结果:

[(1,), (2,), (3,), (4,), (5,)]


例2:

zip()函数有两个参数

lst1 = [1, 2, 3, 4, 5]
lst2 = ['a', 'b', 'c', 'd', 'e']
res2 = zip(lst1, lst2)
print(list(res2))

输出结果:

[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]




zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。



7aabc4506728aeaf98c9d2de4c265cec.webp


浏览 20
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报