python | 三个python内置函数
smile唐
共 1264字,需浏览 3分钟
·
2020-12-18 18:21
01filterfilter()filter()可以从序列中过滤出符合条件的元素,保存到一个新的序列中参数: 1.函数,根据该函数来过滤序列(可迭代的结构)
2.需要过滤的序列(可迭代结构)
返回值:
过滤后的新序列(可迭代的结构)
例:
def func(lst):
if lst % 3 == 0:
return True
return False
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
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() 转换。
评论