In Python, I am trying to sort by date with lambda. I can\'t understand my error message. The message is:
() takes exactly 1 argument (2 given
Python lists have two built-in ways to sort data:
sort() — A method that modifies the list in-place
sorted() — A built-in function that builds a new sorted list from an iterable
Based on your requirement you can choose among these two:
if you want to keep original list ,you can use sorted function or if you don't need original list you can use sort function.
Before going on sort or sorted ,we need to understand lambda.
A lambda is an anonymous function and an anonymous function is a function that is defined without a name, this post seems to explain it pretty nicely.
https://www.programiz.com/python-programming/anonymous-function
Lambda functions are nice for calling in-line because they only have one expression which is evaluated and returned. They syntax for a lambda is:
lambda arguments: expression
let's see how to use sorted function:
student_tuples = [('john', 'A', 15),('jane', 'B', 12),('dave', 'B', 10),]
sorted(student_tuples, key=lambda student: student[2])
output: [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
Here we can see list student_tuples having tuples is sorted based on key parameter provided that is student[2].