我正在Coursera上一门课程,但是我并不太理解lambda的工作原理...如果有人能告诉我这个例子,我会很感激的,谢谢
people = ['Dr. Christopher Brooks', 'Dr. Kevyn Collins-Thompson', 'Dr. VG Vinod Vydiswaran', 'Dr. Daniel Romero']
def split_title_and_name(person):
return person.split()[0] + ' ' + person.split()[-1]
#option 1
for person in people:
print(split_title_and_name(person) == (lambda x: x.split()[0] + ' ' + x.split()[-1])(person))
#option 2
list(map(split_title_and_name, people)) == list(map(lambda person: person.split()[0] + ' ' + person.split()[-1], people))
答案 0 :(得分:2)
我想你的意思是专注于
(lambda x: x.split()[0] + ' ' + x.split()[-1])(person)
所以让我们分解一下...
首先...该函数的内容
x.split()[0]
|用空格分隔字符串,并获取返回列表的第0
个索引|例如,如果x
是“铁钥匙”,它将返回"iron"
x.split()[-1]
|与最后一个类似,但这给出了返回列表的最后一个元素;大概是姓 现在lambda函数具有自身功能
lambda x
|声明具有一个参数的函数:x
(lamda x: ...)(person)
|调用传递person
作为x参数的函数 lambda person: person.split()[0] + ' ' + person.split()[-1]
是一回事,只是它只使用person
作为参数。