文章目录
# 自律 学习日记02-3
一.内置函数
内置函数:https://www.runoob.com/python/python-built-in-functions.html
常用的内置函数:
- map函数: 会根据提供的函数对指定序列做映射。
- filter函数:函数用于过滤序列 (一般结合匿名函数来用)
- zip函数:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组
class filter(object):
'''
function_or_None:函数
iterable :可迭代的
'''
def __init__(self, function_or_None, iterable):
pass
filter:
def fun(n):
return 20<n<40
li=li=[2,7,8,30,23,32,33]
#li列表的值传到函数fun里面过滤不满足条件的值
res=filter(fun,li)
print(list(res))
>>>[30, 23, 32, 33]
map:
#li列表的值传到函数fun里面输出返回值
res2=map(fun,li)
print(list(res2))
>>>[False, False, False, True, True, True, True]
def fun(n):
return n*2
li=[2,7,8,30,23,32,33]
res2=map(fun,li)
print(list(res2))
>>>>[4, 14, 16, 60, 46, 64, 66]
zip:打包
res3=zip([1,2,3],[11,22,33],[111,222,333])
print(list(res3))
>>>[(1, 11, 111), (2, 22, 222), (3, 33, 333)]
列表长短不一时,保留最短的。
res4=zip([2,3],[33],[111,222])
print(list(res5))
>>>[(2,33,111)]
[filter扩展:]
1.普通函数:
people_nane = ['cc佩奇','美国队长', 'cc乔治', '黑警察cc']
def a(array): #接收列表的形参array
ret = []
for i in array:
if not i.startswith('cc'): #判断是否以'cc'开头
ret.append(i) #追加到ret列表中
return ret #python中可以返回列表
print(a(people_nane)) #返回值是ret列表,所以这里也是输出ret列表
>>>>>['美国队长', '黑警察cc']
2.匿名函数:
movie_people = ['sb绿巨人','美国队长', 'sb钢铁侠', '蜘蛛侠sb']
def filter_test(func,array):
ret = []
for i in array:
if not func(i):
ret.append(i)
return ret
res = filter_test(lambda n:n.endswith('sb'),movie_people)
print(res)
>>>>>[‘sb绿巨人’, ‘美国队长’, ‘sb钢铁侠’]
3.filter函数
movie_people = ['sb绿巨人','美国队长', 'sb钢铁侠', '蜘蛛侠sb']
res = list(filter(lambda n:not n.endswith('sb'),movie_people))
print(res)
>>>['sb绿巨人', '美国队长', 'sb钢铁侠']