python学习day15

一.今日主要内容
# 1.lambda  匿名函数   语法: lambda 参数:返回值, 用于简单的操作
# a=lambda i:i*i
# print(a(4))
# print(a.__name__)
# b=lambda x,y: x*y
# print(b(23,3))
#
# 2.sorted函数
# lst=[1,32,12,11,43,2,56,78]
# lst.sort()
# print(lst)
# ll=sorted(lst,reverse=True)
# print(ll)
#
#
# 给列表根据字符串的长度进行排列
# lst = ["大阳哥aaaa", "尼古拉斯aa", "赵四aaaaaaaaa", "刘能a", "广坤aaa", "谢大脚aaaaaaa"]
# ll=sorted(lst,key=lambda i:len(i))
# print(ll)
#
# 根据列表中a的个数进行排列
# ll=sorted(lst,key=lambda i:i.count('a')) #内部可以把每一个可跌代对象元素传递给func函数
# print(ll)
#
# 根据列表中字典中的数据进行排列
# lst = [
#         {'id':1, 'name':'alex', 'age':18},
#         {'id':2, 'name':'taibai', 'age':58},
#         {'id':3, 'name':'wusir', 'age':38},
#         {'id':4, 'name':'ritian', 'age':48},
#         {'id':5, 'name':'女神', 'age':18}
#        ]
# ll=sorted(lst,key=lambda dic:dic['age'],reverse=True)
# print(ll)
#
# filter 过滤函数   语法: 函数(判断TRue或False) ,可跌代对象
# lst = [1,2,3,4,5,6,7,8,9]
# ll=filter(lambda i:i%2==1,lst)      #返回的是一个迭代器
# 第一个参数是函数,将第二个参数中的每一个元素传给函数,如果是True留下元素
# print('__iter__' in dir(ll))
# # print('__next__' in dir(ll))
# print(list(ll))
#
# 过滤掉列表中字典年龄大于40的元素
# lst = [
#         {'id':1, 'name':'alex', 'age':18},
#         {'id':2, 'name':'taibai', 'age':58},
#         {'id':3, 'name':'wusir', 'age':38},
#         {'id':4, 'name':'ritian', 'age':48},
#         {'id':5, 'name':'女神', 'age':18}
#        ]
# ll=filter(lambda dic :dic['age']>40,lst)
# print(list(ll))
#
#
#  map函数
# 语法: map(函数,可迭代对象) 把可迭代对象中的每一个元素放入函数中进行处理,处理后生成迭代器
# lst = [1,2,3,4,5,6,7,8,9,0,23,23,4,52,35,234,234,234,234,234,23,4]
# ll=map(lambda i:i*i,lst)
# print(list(ll))
#
# lst1 = [ 1, 2, 3, 4, 5]
# lst2 = [ 2, 4, 6, 8]
# print(list(map(lambda x,y:x+y,lst1,lst2)))
# 进行求和以列表中元素最短的为基准
#
#
# 递归(函数自己调用自己)
# 应用 遍历树形结构
# import os
# filepath='e:\Windows\study\python学习.idea'
# def read(filepath,n):
#  it=os.listdir(filepath)          #打开文件夹
#  for el in it:              #拿到路径
#     fp=os.path.join(filepath,el)      #获取绝对路径
#     if os.path.isdir(fp):     #判断是否问文件夹
#        print('\t'*n,el)      #子目录进行缩进
#        read(fp,n+1)         #如果是文件夹继续用read判断打开  递归的入口
#     else:
#        print('\t'*n,el)      #递归出口
# read(filepath,0)
#
#
# 二分法查找三种方法
# 1.不用递归,用循环
# lst = [11,22,33,44,55,66,77,88,99,123,234,345,456,567,678,789,1111]
# def func(n):
#  left=0
#  rigt=len(lst)-1
#  count=0
#  while left<=rigt:
#     midlle=(left+rigt)//2
#     if n>lst[midlle]:
#        left=midlle+1
#     elif n<lst[midlle]:
#        rigt=midlle-1
#     else:
#        print('一共进行了%s次比较' % count)
#        print('数字所在位置%s' % midlle)
#        break
#     count+=1
#  else:
#     print('不存在')
# func(566)
#
# 二分法查找,递归
# lst = [11,22,33,44,55,66,77,88,99,123,234,345,456,567,678,789,1111]
# def func(left,right,n):        #不改变列表本身, 动态改变左右,和中间值
#  midlle=(left+right)//2
#  if left>right:
#     return '不存在此数'
#  if n>lst[midlle]:
#     left=midlle+1
#  elif n<lst[midlle]:
#     right=midlle-1
#  else:
#     return '存在此数,位置是%s' % midlle         #如果不return会返回None
#  return func(left,right,n)
# print(func(0,len(lst)-1,566))
#
# 二分法查找,递归--去除列表
# lst = [11,22,33,44,55,66,77,88,99,123,234,345,456,567,678,789,1111]
# def func(lst,n):
#  left=0
#  right=len(lst)-1
#  midlle=(left+right)//2
#  if right<=0:
#     print('没有这个数')
#     return
#  if n>lst[midlle]:
#     lst=lst[midlle+1:]
#  elif n<lst[midlle]:
#     lst=lst[:midlle]
#  else:
#     print('找到了')
#     return
#  func(lst,n)
# func(lst,22)

猜你喜欢

转载自www.cnblogs.com/zhangtianyi/p/9342881.html