2024-04-26 08:04:26 发布
网友
在Python中,我试着按lambda的日期排序。我无法理解我的错误信息。信息是:
<lambda>() takes exactly 1 argument (2 given)
我的电话是
a = sorted(a, lambda x: x.modified, reverse=True)
使用
a = sorted(a, key=lambda x: x.modified, reverse=True) # ^^^^
在Python 2.x上,sorted函数按以下顺序接受其参数:
sorted
sorted(iterable, cmp=None, key=None, reverse=False)
因此,如果没有key=,您传入的函数将被视为cmp函数,它包含两个参数。
key=
cmp
lst = [('candy','30','100'), ('apple','10','200'), ('baby','20','300')] lst.sort(key=lambda x:x[1]) print(lst)
打印如下:
[('apple', '10', '200'), ('baby', '20', '300'), ('candy', '30', '100')]
Python列表有两种内置的数据排序方式:
sort() — A method that modifies the list in-place sorted() — A built-in function that builds a new sorted list from an iterable
根据您的要求,您可以在以下两个选项中进行选择:
如果要保留原始列表,可以使用排序函数;如果不需要原始列表,可以使用排序函数。
在进行排序或排序之前,我们需要了解lambda。
lambda是一个匿名函数,匿名函数是一个没有名字的函数,这篇文章似乎很好地解释了这一点。
https://www.programiz.com/python-programming/anonymous-function
Lambda函数很适合调用内联函数,因为它们只有一个计算并返回的表达式。lambda的语法是:
lambda参数:表达式
让我们看看如何使用排序函数:
student_tuples = [('john', 'A', 15),('jane', 'B', 12),('dave', 'B', 10),] sorted(student_tuples, key=lambda student: student[2])
输出: [(“dave”,“B”,10),(“jane”,“B”,12),(“john”,“A”,15)]
这里我们可以看到列表student-tuples,其中的tuples是根据key参数排序的,前提是student[2]。
使用
在Python 2.x上,
sorted
函数按以下顺序接受其参数:因此,如果没有
key=
,您传入的函数将被视为cmp
函数,它包含两个参数。打印如下:
Python列表有两种内置的数据排序方式:
根据您的要求,您可以在以下两个选项中进行选择:
如果要保留原始列表,可以使用排序函数;如果不需要原始列表,可以使用排序函数。
在进行排序或排序之前,我们需要了解lambda。
lambda是一个匿名函数,匿名函数是一个没有名字的函数,这篇文章似乎很好地解释了这一点。
https://www.programiz.com/python-programming/anonymous-function
Lambda函数很适合调用内联函数,因为它们只有一个计算并返回的表达式。lambda的语法是:
lambda参数:表达式
让我们看看如何使用排序函数:
输出: [(“dave”,“B”,10),(“jane”,“B”,12),(“john”,“A”,15)]
这里我们可以看到列表student-tuples,其中的tuples是根据key参数排序的,前提是student[2]。
相关问题 更多 >
编程相关推荐