我是一名初级程序员,目前正在观看 Bro Code 的 Python 教程。 他这样编码:
我想知道你会如何用“def”而不是 lambda 来做到这一点,我想我应该把它放在下一部分中。
我尝试这样做:
students = [("ab", "F", 60),
("man", "D", 21),
("yo", "A", 22),
("pope", "C", 32)]
def age(x):
return students.index(2)
a = sorted(students, key=age, reverse=True)
for e in a:
print(e)
当然它不起作用,现在我被困住了。
编辑: 在写这篇文章的过程中,我得到了我应该做的事情,但现在我不明白。
def age(x):
x = x[2]
return x
如果有人能向我解释那就太好了,无论如何,谢谢
以下等价于第一个近似:
f = lambda x: RETURN_VALUE
def f(x):
return RETURN_VALUE
唯一显着的区别是,在第一种情况下,
f.__name__
是 <lambda>
,在第二种情况下,f
。
换句话说,任何可以用单个
return
语句定义的函数都可以用 lambda 表达式定义,反之亦然。 lambda 表达式的主体只是 return 语句减去 return
关键字。
.index()
函数执行与您想要的相反的操作。给定一个列表
x = ["a", "b", "c", "d"]
如果你这样做了
print(x.index("a"))
你会看到答案
> 0
因为“a”是列表中的第0个索引。您尝试并成功的下一个功能是
print(x[0])
> "a"
返回列表中该索引处的值。
顺便说一句,正如其他人提到的,您不需要将其分配给 x,您的函数可以是
def age(x):
return x[2]