一、lambda(兰姆达)直译意思是希腊字母表中的第11个字母(λ)
二、使用方法:将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数。
1、例如,执行语句add=lambda x, y: x+y,定义了加法函数lambda x, y: x+y,并将其赋值给变量add,这样变量add便成为具有加法功能的函数。例如,执行add(1,2),输出为3。
2、在比如num=lambda x: len(x),这样变量num便具有的统计长度的功能,输入aaddccdc,输出为8。
s = input()
num = lambda x: len(x)
output = num(s)
print(output)
输入:aaddccdc
输出:8
3、再比如sss=lambda x: s.count(x),这样变量sss便具有的统计数量的功能,输入aaddccdc,统计字母a的数量,输出为2。
s = input()
num = lambda x: s.count(x)
output = num("a")
print(output)
输入:aaddccdc
输出:2
三、配合sorted使用
sorted(iterable, *, key=None, reverse=False) 函数对所有可迭代的对象进行排序操作。
1、统计长度之后再做排序。
key
:指定带有单个参数的函数,用于从
iterable
的每个元素中提取用于比较的键,默认为
None
,即直接比较元素;
reverse=True,倒序排列。
list = ['a', 'bc', 'defg', 'handsome', 'qwerrtyyuu']
print(sorted(list,key=lambda x:len(x),reverse=True))
Output:
['qwerrtyyuu', 'handsome', 'defg', 'bc', 'a']
2、统计数量之后再做排序
while True:
try:
s = input()
ss = sorted(list(set(s)), key=lambda x: s.count(x)*1000-ord(x),reverse=True) #将统计的个数乘以1000再减去对应字符的ascii码,目的是如果统计的个数相同,则按照ASCII码由小到大排序输出
print("".join(ss))
except:
break
输入:aaddccdc
输出:cda