lambda,sorted(),filter(),map(),递归,二分法
1. lambda 匿名函数 语法: lambda 参数:返回值 不能完成复杂的操作例
# li=['21','asdd','weqeqw','wqf']# # it=iter(li)# # print(next(it))# # print(next(it))# ## it=li.__iter__()# print(it.__next__())### s="heihei21"# print(hash(s))
# import os# name=input('请输入要内幕:')# __import__(name)# # print(name)# print(help(str))# print(dir(str))# a=11# print(type(a))# print(bin(20))# print(hex(20))# print(oct(20))# a=10# print(callable(a))
2. sorted() 函数 排序. 1. 可迭代对象 2. key=函数. 排序规则 3. reverse. 是否倒序例
# lst = [5,7,6,12,1,13,9,18,5]# # lst.sort() # sort是list里面的一个方法# # print(lst)## ll = sorted(lst, reverse=True) # 内置函数. 返回给你一个新列表 新列表是被排序的# print(ll)
# 给列表排序. 根据字符串的长度进行排序lst = ["大阳哥a", "尼古拉斯aa", "赵四aaa", "刘能a", "广坤aaaaaa", "谢大脚a"]## def func(s):# return s.count('a') # 返回数字## ll = sorted(lst, key=lambda s:s.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)
3. filter() 函数 过滤 1. 函数, 返回True或False 2. 可迭代对象例
# def func(i): # 判断奇数# return i % 2 == 1lst = [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))
# 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}# ]## print(list(filter(lambda dic: dic['age']>40, lst)))
4. map() 映射函数 1. 函数 2. 可迭代对象例
# lst = [1,2,3,4,5,6,7,8,9,0,23,23,4,52,35,234,234,234,234,234,23,4]# it = map(lambda i: i * i, lst) # 把可迭代对象中的每一个元素传递给前面的函数进行处理. 处理的结果会返回成迭代器# print(list(it)) # lst1 = [ 1, 2, 3, 4, 5]# lst2 = [ 2, 4, 6, 8]# print(list(map(lambda x, y:x+y, lst1, lst2))) # 如果函数中有多个参数. 后面对应的列表要一一对应
5. 递归 自己调用自己. def func(): func() func() 难点:不好想.需要找规律. 不好读例
# import sys# sys.setrecursionlimit(10000) # 可以调整递归深度. 但是不一定能跑到这里# def func(count):# print("我是谁,我在哪里"+str(count))# func(count+1)# func(1)
# while 1:# a = 10# print("哈哈")
# 遍历树形结构# import os# filePath = "d:\sylar\python_workspace"## 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) # 又是文件夹. 继续读取内部的内容 递归入口# else:# print("\t"*n,el) # 递归出口## read(filePath, 0)
6. 二分法 掐头结尾取中间. 不停的改变左和右. 间接改变中间. 查询效率非常高例
# lst = [11,22,33,44,55,66,77,88,99,123,234,345,456,567,678,789,1111]# n = 567# left = 0# right = len(lst) - 1# count = 1# while left <= right:# middle = (left + right) // 2# if n > lst[middle]:# left = middle + 1# elif n < lst[middle]:# right = middle - 1# else:# print(count)# print("存在")# print(middle)# break# count = count + 1# else:# print("不存在")
# lst = [11,22,33,44,55,66,77,88,99,123,234,345,456,567,678,789,1111]# # def binary_search(left, right, n):# middle = (left + right)//2# if left > right:# return -1# if n > lst[middle]:# left = middle + 1# elif n < lst[middle]:# right = middle - 1# else:# return middle# return binary_search(left, right, n)# print(binary_search(0, len(lst)-1, 65) )
# def binary_search(lst, n):# left = 0# right = len(lst) - 1# middle = (left + right) // 2# if right <= 0:# print("没找到")# return# if n > lst[middle]:# lst = lst[middle+1:]# elif n < lst[middle]:# lst = lst[:middle]# else:# print("找到了")# return# binary_search(lst, n)# binary_search(lst, 65)
lambda,sorted(),filter(),map(),递归,二分法的更多相关文章
- Day14--Python--函数二,lambda,sorted,filter,map,递归,二分法
今日主要内容:1. lambda 匿名函数 lambda 参数: 返回值-------------------------------------def square(x): return x**2 ...
- python之内置函数(lambda,sorted,filter,map),递归,二分法
一.lambda匿名函数 为了解决一些简单需求而设计的一句话函数,lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数. 语法: 函数名 = lambda 参数 : 返回值 ...
- 内置函数 lambda sorted filter map 递归
一 lambda 匿名函数 为了解决一些简单的需求而设计的一句话函数 # 计算 n 的 n次方 def func(n): return n**n print(func(10)) f = lambda ...
- Python【day 14-4】sorted filter map+递归文件夹+二分法查找
def func(x): #普通函数 return x*x ret1 = func(10) #匿名函数 f = lambda x:x*x # 匿名函数写法: 匿名函数名=lambda 参数:返回值 ' ...
- Python_Mix*匿名函数,sorted,filter,map,递归函数,二分法查找
lambda匿名函数(函数名统一都叫lambda) 为了解决简单的需求而设计的一句话函数 语法: lambda 参数 返回值 n = lambda a,b: max(a,b) ret = n(9,4) ...
- 小学生都能学会的python(<lamda匿名函数,sorted(),filter(),map(),递归函数>)
小学生都能学会的python(<<lamda匿名函数,sorted(),filter(),map(),递归函数,二分法>> 1. lambda 匿名函数 lambda 参数: ...
- lambda匿名函数,sorted(),filter(),map(),递归函数
1.lambda匿名函数 为了解决一些简单的需求而设计的一句话函数 #计算n的n次方 def func(n): return n**n print(func(10)) f = lambda n: n* ...
- 匿名函数 sorted() filter() map() 递归函数
一. lambda() 匿名函数 说白了,从字面理解匿名函数就是看不见的函数,那么他的看不见表现在哪里呢? 其实就是在查询的时候他们的类型都是lambda的类型所以叫匿名,只要是用匿名函数写的大家 ...
- sorted() ,filter() ,map()的用法
sorted() 排序函数. 语法: sorted(Iterable, key=None, reverse=False) Iterable: 可迭代对象 key: 排序规则(排序函数), 在sorte ...
随机推荐
- 对magento MVC框架的了解
对magento MVC框架的了解 在做二次开发以来,一直没有好好地去了解magento的MVC架构,以为跟其它的MVC架构一样,其实有着很大的区别. 有很多的程序框架都使用了现在最流行的MVC架构, ...
- linux shell except tcl login ssh Automatic interaction
/*************************************************************************************** * linux she ...
- Linux删除Screen
screen screen命令是用来解决远程运行服务器中程序时无法退出的尴尬问题. 介绍 有详细的一篇文章 linux screen 命令详解 问题 文章较老,难免有问题. 比如某用户评论: Ctrl ...
- LuoguP4389 付公主的背包【生成函数+多项式exp】
题目背景 付公主有一个可爱的背包qwq 题目描述 这个背包最多可以装10^5105大小的东西 付公主有n种商品,她要准备出摊了 每种商品体积为Vi,都有10^5105件 给定m,对于s\in [1,m ...
- ElasticSearch(六):IK分词器的安装与使用IK分词器创建索引
之前我们创建索引,查询数据,都是使用的默认的分词器,分词效果不太理想,会把text的字段分成一个一个汉字,然后搜索的时候也会把搜索的句子进行分词,所以这里就需要更加智能的分词器IK分词器了. 1. i ...
- WinFrom调试时,弹出你正在调试发布的版本
把下图这里改成DEBUG就好 还有项目属性里面也要改一下 问题解决!
- java数据结构链表(纯面向对象的方式)
//Node.java //LinkedList.java _____ //测试类 [lcy, haha] 1 lcy 删除的对象是 1[lcy, haha] lcy
- 在Spark上通过BulkLoad快速将海量数据导入到Hbase
我们在<通过BulkLoad快速将海量数据导入到Hbase[Hadoop篇]>文中介绍了一种快速将海量数据导入Hbase的一种方法,而本文将介绍如何在Spark上使用Scala编写快速导入 ...
- centos7.x网卡bond配置
本文摘抄自 https://www.cnblogs.com/liwanggui/p/6807212.html centos7网卡bond配置 centos7网卡bond配置 1 备份网卡配置文件2 使 ...
- 00.嵌入式Linux开发环境搭建
3.虚拟机上网配置 虚拟机如果要从网上获取资源,就要能够访问外网.虚拟机有三种上网方式:桥接上网,NAT上网,单主机模式[没用过].本节从原理和操作2个方面讲了NAT方式和桥接方式这2种不同的虚拟机 ...