people = ['Dr. Christopher Brooks', 'Dr. Kevyn Collins-Thompson', 'Dr. VG Vinod Vydiswaran', 'Dr. Daniel Romero']\
for person in people:
print((lambda x: x.split()[0] + ' ' + x.split()[-1])(person))
第一个for循环返回中间已删除的人员列表,但我不明白为什么在末尾添加“person”?这是不是说我们的意思是“x”是在人员列表中运行的人员
此外,我尝试了不同的for循环:
for person in people:
print((lambda person: person.split()[0] + ' ' + person.split()[-1]))
这对我来说更有意义,但它会返回:
<function <lambda> at 0x7fab41922a60>
<function <lambda> at 0x7fab41922a60>
<function <lambda> at 0x7fab41922a60>
<function <lambda> at 0x7fab41922a60>
为什么??任何帮助都是非常感谢的,我真的很努力地学习这门语言,但它仍然是如此模糊对我来说
lambda
是函数,(person)
调用该函数,如果我们使用变量存储lambda表达式,这应该更清楚可能被改写为
请记住,在变量中存储
lambda
在python
中是不受鼓励的,所以为了使其符合良好的样式,您可以将其更改为当你这样做的时候
打印
lambda
的主题本身,同时对它们的输出值感兴趣这里有几行:
是非常糟糕的代码,因为它不必要地使用了
lambda
他们的意思可能是:
它在索引之前执行
.split()
一次这句话的意思是:
is do是在一行中创建和执行
lambda
。末尾的(person)
正在调用参数为person
的lambda
,该参数将成为lambda的x
参数lambda
基本上是函数。如documentation中所述:因此,我建议您不要在此处使用lambda:
lambda
默认情况下提供实例对象,如<function <lambda> at 0x7fab41922a60>
相关问题 更多 >
编程相关推荐