lambda函数+map函数的结合使用 list(map(lambda x: list(x)[0], X))_古月哲亭-程序员宝宝_list(map(lambda

技术标签: python  lambda函数  map函数  

Q1:什么是lambda函数?怎么定义?有什么作用?
知识点:lambda
解析:

lambda叫做匿名函数,是一种不需要提前对函数进行定义再使用的情况下就可以使用的函数
1
定义规则:冒号的左边是原函数的参数,右边是原函数的返回值。

# 常规定义,需要提前定义函数
>>> def func(x):
...     return x+1
... 
>>> func(1)
2
>>> 

# 使用lambda表达式,一步实现。
# 冒号左边是原函数参数;
# 冒号右边是原函数返回值;
>>> a = lambda x:x+1
>>> a(1)
2
>>> 

作用:对于一些比较抽象且只调用一两次的函数,使用lambda可以省略函数定义的步骤,减少代码量,使用代码整体更加精简。

#定义一个filter函数,过滤函数中的偶数,得出10以内的奇数。
#余数得出等于1就是奇数。
>>> def add(x):
...     return x%2==1
... 
>>> list(filter(add,range(10)))
[1, 3, 5, 7, 9]
>>> 

#使用lambda定义,可以减少函数定义的步骤
>>> list(filter(lambda x:x%2==1, range(10)))
[1, 3, 5, 7, 9]
>>> 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
扩展知识:计算偶数

#余数得出等于0,就是偶数
>>> list(filter(lambda x:x%2==0, range(10)))
[0, 2, 4, 6, 8]
>>> 
1
2
3
4
map函数如何使用?

>>> help(map)
class map(object)
 |  map(func, *iterables) --> map object
#从帮助信息可以得出,map函数第一部分是一个函数操作,第二部分是一个可迭代的对象,可以是元组,列表,字典等
1
2
3
4
map函数例子:我们有一个元组列表[(‘a’,1),(‘b’,2),(‘c’,3),(‘d’,4)],我想在想把里边每个元组的第一项,即字母项提取出来构成一个新的列表。

>>> vartuple = [('a',1),('b',2),('c',3),('d',4)]
>>> list(map(lambda x:x[0],vartuple))
['a', 'b', 'c', 'd']
#Python版本: 3.3.4
#1.常规方法
>>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9,10]
>>> def square(x):
return x**2

>>> list(map(square,lst))     #Python2.x使用map(square,lst)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

#2.使用lambda函数
>>> list(map(lambda x:x**2,lst))     #Python2.x使用map(lambda x:x**2,lst)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

>>> [(lambda x:x**2)(x) for x in lst]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

#map函数除了作用于数字列表外,还可以作用于字符串和元组。
#例如:
>>> list(map(ord,'abcdef'))
[97, 98, 99, 100, 101, 102]

#当传入多个可迭代对象时,且它们元素长度不一致时,生成的迭代器只到最短长度
>>> list(map(lambda x,y:x+y,'abc','de')) 
['ad', 'be']
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/stay_foolish12/article/details/107160831

智能推荐

Retrofit 2.0 超能实践(三),轻松实现多文件/图片上传/Json字符串/表单_卖火柴的小男孩2020的博客-程序员宝宝

通过前两篇姿势的入门Retrofit 2.0 超能实践,完美支持Https传输 Retrofit2.0 完美同步Cookie实现免登录本文出自:http://blog.csdn.net/sk719887916/article/details/51755427 码小白如果嫌麻烦直接可以用我封装好的库:Novate: https://github.com/Tamicer/Novat...

python实现ssh端口转发_end for time的博客-程序员宝宝_python ssh 端口转发

nginx配置本地开发调式比如laravel框架的env配置文件,可以由nginx来配置环境变量,进而实现不同环境的不同配置,有deve由于mysql,redis这些都是不同的远程主机

Springboot多数据源配置详解_陌守的博客-程序员宝宝_springboot多数据源配置

Springboot多数据源配置详解概念配置多数据源使用概念一般来说,我们正常的业务只涉及一个数据源,在特定的业务场景中需要使用多个数据源的情况,就需要配置多个数据源来满足特定的业务需求。本文介绍的是:springboot 整合 dynamic-datasource 来实现多数据源的配置使用。注意:此处可以整合多种不同类型的数据库。配置1、引入 pom 依赖(主要依赖)<dependency> <groupId>com.baomidou</groupId&gt

vue项目实战(三)- 旅游网站详情页面开发_i小默的博客-程序员宝宝_vue 网站

一、详情页banner添加动态路由:{ path: '/detail/:id', name: 'Detail', component: Detail }详情页首图:<template> <div class="banner"> <img class="banner-img" src="//img1.qunarzz.com/sight/p0/1809/10/10d6568ad3ad4bb5a3.img.jpg

husky_gazebo没有/scan_贤贤贤贤小波的博客-程序员宝宝

系统:ubuntu 18.04ros:melodic启动仿真环境roslaunch husky_gazebo husky_playpen.launch安装的ros和husky都正常,但是偏偏没有/scan数据排查了很久后来发现目前版本是21年7月份更新的 0.4.10版本发现之前安装过的 0.4.8的版本是正常的,把旧版本替换新版本即可原本想通过apt安装旧版本,执行 apt-cache madison husky 发现只有0.4.10单版本,没有历史版本,换过 阿...

Linux 下的一个全新的性能测量和调式诊断工具 Systemtap, 第 2 部分: DTrace_ctthuangcheng的博客-程序员宝宝

DTrace的原理本系列文章详细地介绍了一个 Linux 下的全新的调式、诊断和性能测量工具 Systemtap 和它所依赖的基础 kprobe 以及促使开发该工具的先驱 DTrace 并给出实际使用例子使读者更进一步了解和认识这些工具。 本文是该系列文章之二,它详细地讲解了 DTrace 的原理。本系列文章之一讲解了 kprobe 的原理、编程接口、局限性和使用注意事项并给出实际使用示例帮助读者

随便推点

PHP 5.6,7.0,7.1,7.2 和 HHVM 运行效率比较_lvwuwei的博客-程序员宝宝

PHP 5.6,7.0,7.1,7.2 和 HHVM 运行效率比较我们每年都会尝试深入了解不同版本的 PHP 和 HHVM 在各种平台的性能基准。 今年,我们全面对 20 种不同平台/配置中的四种不同的 PHP 引擎和 HHVM 进行了基准测试; 包括 WordPress,Drupal,Joomla!,Laravel,Symfony 等。 我们还测试了流行的电子商务解决方案,如 WooComme...

golang复合类型总结_github_zwl的博客-程序员宝宝_golang 联合类型

golang复合类型总结指针类型,数组,切片,map和结构体 指针:指针就是地址var p *inta=1p = &a*p = 999 相当于a=999指针必须有一个合法的指向才能调用赋值等 new关键字和make关键字留意一下。new之后不需要释放,自动的gc值传递和指针传递的区别---值传递是拷贝一份,指针则是指向其内存...

零基础Java第二天笔记整理 Java第一行代码,常量和变量 最后有老师留的作业_狗high的博客-程序员宝宝

Java第一行代码,常量和变量1. Notepad++准备[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Unfj5XVw-1586944262758)(img/notepad++自动完成.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uh3L6XTo-1586944262761)(img/新建操作.png)]2. J...

x264_param_default分析_SmallSheepO的博客-程序员宝宝

x264_param_default分析(ZZ) void x264_param_default( x264_param_t *param ){ /* 开辟内存空间*/ memset( param, 0, sizeof( x264_param_t ) ); /* CPU自动检测 */ param->cpu = x264_cpu_

vue集成百度UEditor富文本编辑器_yejiang1015的博客-程序员宝宝

在前端开发的项目中。难免会遇到需要在页面上集成一个富文本编辑器。那么。如果你有这个需求。希望可以帮助到你vue是前端开发者所追捧的框架,简单易上手,但是基于vue的富文本编辑器大多数太过于精简。于是我将百度富文本编辑器放到vue项目中使用。效果图如下废话不多说。1、使用vue-cli构建一个vue项目。然后下载UEditor源码。地址:http://ueditor.baidu.com/website

Python解决插入数据库乱码问题_振长策而御宇内的博客-程序员宝宝

从网站上获取的信息要保存在本地数据库中,但是保存的过程中数据库的信息都变成了乱码,怎么解决呢?客官听我娓娓道来。首先,保证以下四项的编码都是utf-8:1. 代码2. 数据库连接3. 表的字符集格式4. 插入的数据格式每步的操作如下:1. 保证代码的格式是utf-8,在代码最前面加上这句话# -*- coding:utf8 -*-#首先用于确定编码,加上这

推荐文章

热门文章

相关标签