lambda函数(配合map函数)以及[x for x in]的超详细解释(实例+原理)
lambda
定义
一个匿名函数,见下面
格式以及使用方法:
lambda x(传入的参数):要执行的语句(这条语句执行完之后,就会返回一个值,也就是函数的返回值)
例:
lambda x:x+2
上面那条语句就相当于定义了一个函数,但是怎么用这个函数呢?
可以写f=lambda x:x+2
f(3)
到最后会输出9
其中 x就相当于传入的参数,x+2也就是我们要执行的语句
实际上就相当于
def f(x):
return x+2
高级用法(和for与map连用):
与for连用:
以下是几种错误的例子:
①f=lambda x:x*i for i in range(4)
②f=lambda x:’’.append(i) for i in x.split(’ ‘)
③f=’’.join([lambda x:i for i in x.split(’ ‘)])
④f=lambda x:’’.append(i) for i in range(4)
这是令我误入歧途,但实际上正确的一个例子
f = [lambda x:x*i for i in range(4)]
对错误例子的分析
①f=lambda x:xi for i in range(4)
一定要注意!!!! m for m in xxxxx是python中for的高级用法,
他 只能,也必须返回一个列表!!!!!!!而且每一个m不能来进行其他“不能返回一个元素(装到列表里)”的操作
也就是说,他不能这样写(假设现在有a_dict={1:5,0:7}):
[a_dict[m]=1 for m in range(2)] (这样写会报 invalid syntax错)
但是可以[a_dict[m] for m in range(2)]这样写
这是因为 a_dict[m]=1,这么写没有返回值,但是如果写a_dict[m],那么对于每一个m,a_dict[m]都会返回一个值,比如m=1,那a_dict[m]=5,这个是可以装到列表里的
现在回来看一下f=lambda x:xi for i in range(4) ,其实xi for i in range(4)这么写是没有错的,错误的是 for的高级用法返回的是一个列表,必须用一个[]给他套起来
也就是必须写成 f=lambda x:[xi for i in range(4)]
②和③
其实都犯了一个错误 就是[]没套上,或者套错了地方
②和④ 当时我是咋想的呢,我估计以为 ‘’ 这个能使一个全局的东西了吧(说不清楚)
③呢是因为 []套错地方了
也就是f=’’.join([lambda x:i for i in x.split(’ ‘)])
应该把那个[放到右边去 也就是
f=’’.join(lambda x:[i for i in x.split(’ ‘)]),这样就对了,
因为!!!是lambda x:的里面才是返回值,而不是lambda x:i for i in x.split(’ ')是个返回值
正确例子:
a=prefix_title.applymap(lambda x:’’.join([str(word_id_dict[y])+’ ’ for y in x.split(’ ')]))
我想让句子中的单词都映射成对应的编号
比如 我 是 你 爸爸
可以编码成 0 2 1 3
我的思路是将矩阵中每一个位置的元素(也就是每一个句子)取出来
然后 按空格分成一个数组,对数组中每一个元素进行遍历,映射为一个个数字
然后把这些数字直接拼成一个字符串(用join函数就行)
与map连用(以后更新)
lambda函数(配合map函数)以及[x for x in]的超详细解释(实例+原理)相关推荐
- Python day10 global关键字、函数递归、匿名函数、map函数的用法详解
1.global关键字 引用全局变量,在局部全局变量改变,也会改变,global相当于指针,将地址指向全局变量的name name='littlepage'def littepage():global ...
- 一篇文章对Python匿名函数配合容器函数的使用理解
匿名函数配合容器函数的使用(了解) 1.匿名函数配合列表对象使用 lt=[lambda x:x**2,lambda x:x**3,lambda x:x**4]for i in lt:print(i(2 ...
- pandas使用stack函数、map函数、unstack函数以及字典同时替换dataframe多个数据列的内容
pandas使用stack函数.map函数.unstack函数以及字典同时替换dataframe多个数据列的内容 目录 pandas使用stack函数
- reactjs通过lazy函数配合import函数动态加载路由组件
路由组件的lazyLoad //1.通过React的lazy函数配合import()函数动态加载路由组件 ===> 路由组件代码会被分开打包const Login = lazy(()=>i ...
- Python二维列表排序之lambda,sorted,filter,map函数
目录 一,总览 二,示例 示例1 lambda x:x[0]: 示例2 lambda x:(abs(x),x): 示例3 filter(lambda x:(x%2 == 1),L) map(lamb ...
- python map zip_python中的zip()函数和map()函数
一.zip()函数 1.语法: zip(iterable, ...) 参数说明: iterable,...-- 一个或多个迭代器; 在python2中: zip() 函数用于将可迭代的对象作为参数,将 ...
- python中的zip()函数和map()函数
一.zip()函数 1.语法: zip(iterable, ...) 参数说明: iterable,--- 一个或多个迭代器; 在python3中: zip() 函数用于将可迭代的对象作为参数,将对象 ...
- python之eval函数,map函数,zip函数
eval(str)函数很强大,官方解释为:将字符串str当成有效的表达式来求值并返回计算结果.所以,结合math当成一个计算器很好用. eval()函数常见作用有: 1.计算字符串中有效的表达式,并返 ...
- 常用函数之map函数
map函数 map函数作用: 根据提供的函数对指定的序列做映射.通俗地讲就是以参数序列中的每个元素分别调用参数中的函数(func()),把每次调用后返回的结果保存到返回值中 map函数定义格式如下: ...
- c语言 map 构造函数,map函数,map函数的作用
map不是函数,是一个对象 可以Mapmap=newHashMap();创建 Map就是键值对, map.put("1","123"); map.put(&qu ...
最新文章
- R语言使用vcd包的spine函数可视化spinogram图(spinogram图是被归一化的堆叠条形图、这样每个条形的高度一样、内部显示不同分布的比例)
- word标题自动编号
- ‘聪明的搜索算法’ A*算法
- 前端 input怎么显示null_小猿圈WEB前端之HTML5+CSS3面试题(一)
- echart关系树状图_Echarts关系图-力引导布局
- 程序员开发软件的意义到底在哪?
- Qt5类之QLine and QLineF
- 地图距离算法_基于权重的地图匹配技术
- Git 基础 —— 配置与日志信息
- 2021年SWPUACM暑假集训day5单调栈算法
- texstudio 使用方法_TeXstudio怎么使用,TeXstudio使用教程解析
- C#学习网站资源一览
- 苹果手机5s无需越狱免流_苹果越狱手机端自签名插件
- 数据库查询优化-添加索引
- 【labelme软件】使用指南
- 张朝阳5G寻路与搜狐奇兵
- BOOTROM的理解
- Love Letter
- 上传文件的几种主要方法。
- 微信8.0状态背景视频合集