python key=lambda函数_Python lambda函数,pythonlambda
lambda x: 3*x+1
怎么用它呢 , 来给它一个名字
g = lambda x:3*x+1
调用一下它
g(2)
如果想有多个input怎么办?
比如说想把 first name 和 last name 合起来 ?
full_name = lambda fn,ln: fn.strip().title() + " " +ln.srip().title() .title()的功能是首字母大写
来调用一下? ! full_name(“ leo”,"adriea ")
那key又是怎么肥事儿?
当待排序列表的元素由多字段构成时,我们可以通过sorted(iterable,key,reverse)的参数key来制定我们根据那个字段对列表元素进行排序。
key=lambda 元素: 元素[字段索引]
例如:想对元素第二个字段排序,则
key=lambda y: y[1]
备注:这里y可以是
任意
字母,等同key=lambda x: x[1]
看几个简单的例子。
listA = [3, 6, 1, 0, 10, 8, 9]
print(sorted(listA))
listB = ['g', 'e', 't', 'b', 'a']
print(sorted(listB))
print(sorted(listB, key=lambda y: y[0]))
listC = [('e', 4), ('o', 2), ('!', 5), ('v', 3), ('l', 1)]
print(sorted(listC, key=lambda x: x[1]))
结果
#结果一
[0, 1, 3, 6, 8, 9, 10]
#结果二
['a', 'b', 'e', 'g', 't']
['a', 'b', 'e', 'g', 't']
#结果三
[('l', 1), ('o', 2), ('v', 3), ('e', 4), ('!', 5)]
那最后有个-1 又是什么意思?
turn out 只是读的时候的问题:
Python has the ability to index from the
end
of a list. Hence,
x[-1]
refers to the last element,
x[-2]
refers to the second to last element, etc.
a.sort(key=lambda x: x[-1])
>>> a = [(10, 4), (3, 5), (7, 1)]
>>> a.sort(key=lambda x: x[-1])
[(7, 1), (10, 4), (3, 5)]
按如果是键值对怎么办
d= {'a':24,'g':52,'i':12,'k':33}
# 以列表形式输出字典d的key
# d.items()为字典d的键值对
b1=[key for key,value in d.items()]
print(b1)
# 以列表的形式输出字典d的value
b2={value for key,value in d.items()}
print(b2)
# 颠倒字典d的key:value位置
b3={value : key for key,value in d.items()}
print(b3)
# 将字典d按value的值进行排序
b4=sorted(d.items(), key=lambda x: x[1])
print(b4)
['a', 'i', 'k', 'g']
set([24, 33, 12, 52])
{24: 'a', 33: 'k', 12: 'i', 52: 'g'}
[('i', 12), ('a', 24), ('k', 33), ('g', 52)]
[Finished in 0.0s]
sorted(d.items(), key=lambda x: x[1]) 中 d.items() 为待排序的对象;key=lambda x: x[1] 为对前面的对象中的第二维数据(即value)的值进行排序。 key=lambda 变量:变量[维数] 。维数可以按照自己的需要进行设置。
不想写纬度的话,这是键值对,当然可以用名字来代替拉 :
# 将列表中的age由大到小排序
alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
b=sorted(alist,key=lambda x:x['age'],reverse=True)
print(b)
[{'age': 30, 'name': 'b'}, {'age': 25, 'name': 'c'}, {'age': 20, 'name': 'a'}]
lambda函数能不能内置在其他函数里面呢?
当然~
顺带也提一下map函数怎么用:(map跟lambda函数相反,前面放函数,后面放元素,只有map是反的)
对于min ,max函数是先元素,后函数-->tmin = min(l,key = lambda x:x[0])
map函数举例:
对于一个输入来说:
3
10 2
n = int(input())
T,C = map(int,input().split())
>>>def square(x) : # 计算平方数
... return x ** 2
...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]
最后,对于排序那里,要补充一下 :
对tuple 或者是 二维list 进行排序,先按照第一个元素升序,如果第一个元素相同,再按照第二个元素降序排列。
L = [(12, 12), (34, 13), (32, 15), (12, 24), (32, 64), (32, 11)]
L.sort(key=lambda x: (x[0], -x[1]))
print(L)
或者
L = [[12, 12], [34, 13], [32, 15], [12, 24], [32, 64], [32, 11]]
L.sort(key=lambda x: (x[0], -x[1]))
print(L)
答案都是
[[12, 24], [12, 12], [32, 64], [32, 15], [32, 11], [34, 13]]
[Finished in 0.1s]
而:
L = [[34, 13], [32, 15], [12, 24],[12, 12],[32, 64], [32, 11]]
x = min(L,key=lambda x: x[0])
print(x)
结果是: [12, 24] 而不是 [12,12] 所以说 双层的list排序用的是内层的[]的下标对应的数字作为对比的对象,而当只比一个的时候,不考虑比第二个纬度的话,[12,24]反而是出现的第一个最小的, 这个时候输出是[12,24] 而不是[12,12]
在后面在加一个【】
x = min(L,key=lambda x: x[0])[0]
输出就是 12 了 ,
对于map函数: python map函数感觉比较不一样:
他的定义是这样的:
map函数的原型是map(function, iterable, …),它的返回结果是一个列表。
参数function传的是一个函数名,可以是python内置的,也可以是自定义的。
参数iterable传的是一个可以迭代的对象,例如列表,元组,字符串这样的。
这个函数的意思就是将function应用于iterable的每一个元素,结果以列表的形式返回。注意到没有,iterable后面还有省略号,意思就是可以传很多个iterable,如果有额外的iterable参数,并行的从这些参数中取元素,并调用function。如果一个iterable参数比另外的iterable参数要短,将以None扩展该参数元素。还是看例子来理解吧!
a=(1,2,3,4,5)
b=[1,2,3,4,5]
c="zhangkang"
la=map(str,a)
lb=map(str,b)
lc=map(str,c)
print(la)
print(lb)
print(lc)
输出:
['1', '2', '3', '4', '5']
['1', '2', '3', '4', '5']
['z', 'h', 'a', 'n', 'g', 'k', 'a', 'n', 'g']
而python 中,可以直接 sum[1,2,3] 能得出6 , 所以map函数经常被当作 需要循环 的函数来写,要简单太多拉!!!
比如:l= [[1,2],[3,4]]
我想求 2+4 的答案:
l= [[1,2],[3,4]]
x = sum(map(lambda x:x[1],l))
print(x)
可以直接这么写,因为map函数返回一个[2,4] 而sum[2,4] 等于 6 ,所以就很简单拉!!
python key=lambda函数_Python lambda函数,pythonlambda相关推荐
- python中factor函数_Python入门-函数
函数 在维基百科上函数式这样描述的: 函数在数学中为两集合间的一种对应关系:输入值集合中的每项元素皆能对应唯一一项输出值集合中的元素. 此处的函数区别于我们数学上的函数,在编程世界中,函数(Funct ...
- python里有哪些函数_python update函数会调用哪些内置函数_Python函数之内置函数
截止导Python 3.6 目前内置函数有68个 以下是对这些内置函数的分类 一:作用域相关 以字典的形式返回作用域中的名字 locals # 返回本地作用域的所有名字 globals # 返回全局作 ...
- python中的匿名函数_python匿名函数
文章导读: 以前自己一直没搞明白Python中的匿名函数,现在拿这个问题基本上搞明白了,拿自己的理解整成一篇文章,附带大量例子,让其更加好理解. 在编程语言中,函数的应用: 1. 代码块重复,这时候必 ...
- python实现排序函数_Python排序函数的使用方法详解
Python排序函数完美体现了Python语言的简洁性,对于List对象,我们可以直接调用sort()函数(这里称为"方法"更合适)来进行排序,而对于其他可迭代对象(如set,di ...
- python用psf函数_Python 嵌套函数(高级用法)
Python 嵌套函数(高级用法) 一.嵌套函数(高级用法) 1.嵌套函数 函数的嵌套调用是在"函数调用中再调用其他函数".也就是说:函数嵌套允许在一个函数中调用另外一个函数.如下 ...
- python匿名函数_Python匿名函数
python匿名函数 Welcome to Python anonymous function tutorial. In the previous tutorial we learned about ...
- python lambda菜鸟_Python lambda介绍
在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? 下面就上面的问题进行一下解答. 1.lambda是什么? ...
- 用python写一个函数_Python基础-函数篇
1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 函数与函数式编程 1.面向对象: 华山派----> ...
- python lambda 判断_Python lambda
引言 前段时间,没事儿时翻看了自己刚参加工作时写的一些代码,发现代码中有好几处分别都用到了lambda表达式,从代码中会发现那时候的自己对lambda理解的不算深刻,lambda的本质,为什么要用la ...
- python有哪些函数_python常用函数有哪些
Python常用函数: 1. print()函数:打印字符串 2. raw_input()函数:从用户键盘捕获字符 3. len()函数:计算字符长度 4. format(12.3654,'6.2f' ...
最新文章
- Windows核心编程 第十七章 -内存映射文件(上)
- linux应用程序调试方法,Linux应用程序使用写文件调试程序的方法
- RocketMQ的Producer详解之分布式事务消息(原理分析)
- 科技巨头开发人工智能 稀缺品种或成A股香饽饽
- Web优化 --利用css sprites降低图片请求
- HaProxy+Keepalived+Mycat高可用群集配置
- mysql创建数据库时使用sql/wordbench使主键(primary key)自增
- 运用基础班知识做一个网页
- 好用的MessageFormat类
- 谷歌和 Zyxel 各修复一个已遭利用的 0day
- Firemonkey下使用StyleBook的一些经验
- python - 啃书 第八章 正则表达式
- JS字符串格式化函数 string.format
- 代码设置桌面壁纸或者屏保
- Matplotlib——饼图pie()函数
- [转]SSD:Single Shot Detector详解
- 绍兴14岁女孩被德云社录取,她究竟有什么来历呢?
- 金融风控指标:WOE, IV, KS,LIFT值和PSI
- 自媒体如何赚钱;血的教训总结的8大赚钱平台,10种赚钱套路
- 阿里中间件seata源码剖析六:TCC模式中2阶段提交实现