我想弄清楚Python lambdas.lambda是现实生活中应该被遗忘的"有趣"语言项目之一吗?
我确信有一些可能需要它的边缘情况,但考虑到它的模糊性,它在未来版本中重新定义的可能性(我基于它的各种定义的假设)和降低的编码清晰度 - 应该是要避免吗?
这让我想起C类型的溢出(缓冲区溢出) - 指向顶部变量并重载以设置其他字段值.感觉就像是一种技术表演,但维护编码器的噩梦.
对于没有comp-sci背景的人来说,计算机科学领域的lambda是什么?
language-agnostic theory lambda computer-science terminology
使用一些内置函数,如sorted,sum ...我注意到了它的用法 key=lambda
什么是lambda?它是如何工作的?
还有哪些函数使用key = lambda?
还有其他关键值,比如 key=?
从这样的列表中:
mylist = [{'x':2020 , 'y':20},{'x':2020 , 'y':30},{'x':2021 , 'y':10},{'x':2021 , 'y':5}]
Run Code Online (Sandbox Code Playgroud)
我想保持所有“x”唯一,并且“y”是“x”相同的最大值。
我试图将输出获取为:
mylist_unique = [{'x':2020 , 'y':30},{'x':2021 , 'y':10}]
Run Code Online (Sandbox Code Playgroud)
我以一种非常天真的方式实现了它:
res =[]
temp = {}
print(len(temp))
for i in range(len(mylist)):
print(mylist[i])
for k,v in mylist[i].items():
print(mylist[i]['x'],temp.keys(),mylist[i]['y'])
if mylist[i]['x'] not in temp.keys() or mylist[i]['y'] > (temp[mylist[i]['x']]) :
print(k)
temp.update({mylist[i]['x']:mylist[i]['y']})
print(temp)
for k,v in temp.items():
res.append({'x':k,'y':v})
print(res)
Run Code Online (Sandbox Code Playgroud)