您如何解释此代码? Coursera Lambda蟒蛇

时间:2020-10-28 00:33:57

标签: python lambda

我正在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))

1 个答案:

答案 0 :(得分:2)

我想你的意思是专注于

(lambda x: x.split()[0] + ' ' + x.split()[-1])(person)

所以让我们分解一下...

首先...该函数的内容

  1. x.split()[0] |用空格分隔字符串,并获取返回列表的第0个索引|例如,如果x是“铁钥匙”,它将返回"iron"
  2. x.split()[-1] |与最后一个类似,但这给出了返回列表的最后一个元素;大概是

现在lambda函数具有自身功能

  1. lambda x |声明具有一个参数的函数:x
  2. (lamda x: ...)(person) |调用传递person作为x参数的函数

lambda person: person.split()[0] + ' ' + person.split()[-1]是一回事,只是它只使用person作为参数。

相关问题