python学习历程day15

学习内置函数
包括map,sort,repr,lambda,filter,递归,二分法查找
1.map:
lst = [1,4,7,2,5,8]
def func(el):
return el****2
func(lst)
或者
m = map(lambda el: el**2, lst)
#把后面的可迭代对象中的每一个元素传递给function, 结果就是function的返回值

2.filter
lst = [“张无忌”, “张铁林”, “赵一宁”, “石可心”,“马大帅”]
def func(i):
if i[0] == ‘张’:
return False
else:
return True
filter(func,lst)


lambda i:i[0] !==‘张’
a = filter(lambda i: i[0] != ‘张’,lst)
print(a)
for j in a:
print(j)
将lst中的每一项传递给func, 所有返回True的都会保留, 所有返回False都会被过滤掉

3.递归
递归函数, 自己调用自己
count = 1
def func():
global count
print(“alex是很帅的”, count)
count = count + 1
func()
func()
递归深度. 你可以自己掉用自己的次数,
官方文档中递归最大深度是1000. 在这之前就会给你报错

4.二分法查找
lst = [22, 33, 44, 55, 66, 77, 88, 99, 101 , 238 , 345 , 456 , 567 , 678 , 789]
def func(n,left,right)
if left <=right: # 边界
mid = (left + right)//2 # 必须是整除. 因为索引没有小数
if n>lst[mid]:
left = mid +1
return func(n,left,right) # 递归 递归的入口
elif n<lst[mid]:
right=mid-1
return func(n,left,right)
elif n==lst[mid]:
print(‘找到了’)
rerurn lst[mid]
else:
print(‘没有这个数’)
return -1
ret = func(66,0,len(lst)-1)
print(ret)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值