It doesn't do anything as the lambda expression in your code is wrong:
grade = lambda grades:grade[1]
The above line says: grade is a (lambda) function that has one argument (grades). What this function does is return the first element of grade. But grade is a function and you cannot index a function, so the expression is faulty.
Your code would make more sense to me like this (feel free to use whatever you find useful in it):
students = [("Bob", "F", 40), ("David", "F", 0)]
firstElement = lambda elements : elements[0]
grade = lambda student : student[1]
print(firstElement(students)) # ("Bob", "F", 40)
print(grade(firstElement(students))) # F
The first lambda expression is
firstElement = lambda elements : elements[0]
, i.e., from a sequence of elements the first (0th) one is selected. If it makes more sense, you can replace element with student.
The second lambda expression is
grade = lambda student : student[1]
, i.e., from the student object (name, grade, score) we select the grade (the 1st -- zero based -- entry).
You can see in the example that you can combine these: you can select the first student then select the grade of the student:
grade(firstElement(students))