2024-05-16 21:51:58 发布
网友
给定:lst = [['John',3],['Blake',4],['Ted',3]]
lst = [['John',3],['Blake',4],['Ted',3]]
结果:lst = [['John',3],['Ted',3],['Blake',4]]
lst = [['John',3],['Ted',3],['Blake',4]]
我正在寻找一种方法来排序列表中的列表,首先用数字排序,然后按字母顺序排序,而不使用“itemgetter”语法。在
既然你坚持:
lst.sort(key=lambda x: x[::-1])
您可以使用内置的sorted函数中的参数key。在
sorted
key
在这个key参数中,传递一个带有一个参数的函数,该函数返回将被排序的内容,而不是按列表的元素排序。在
def my_func(elem): # return a tuple (second element, first element) return (elem[1], elem[0]) >>> lst = [['John',3],['Blake',4],['Ted',3]] >>> sorted(lst, key=my_func) [['John', 3], ['Ted', 3], ['Blake', 4]]
甚至更短:
在这两种方法中,你先按数字排序,然后按字母顺序排序。在
我想在下面的问题中可能有人问过这个问题:
{a1}
以下是戴夫·韦伯给出的解释:
The ^{} argument to ^{}指定一个包含一个参数的函数,用于从每个列表元素中提取比较键。因此,我们可以创建一个简单的lambda,它返回要在排序中使用的每行的最后一个元素:
lambda
c2.sort(key = lambda row: row[2])
A ^{} is a simple anonymous function.当您想创建这样一个简单的一次性函数时,它很方便。不使用lambda的等效代码是:
如果要对更多的条目进行排序,只需使key函数返回一个元组,该元组包含按重要性排序的值。例如:
c2.sort(key = lambda row: (row[2],row[1]))
或者:
c2.sort(key = lambda row: (row[2],row[1],row[0]))
既然你坚持:
您可以使用内置的
sorted
函数中的参数key
。在在这个
key
参数中,传递一个带有一个参数的函数,该函数返回将被排序的内容,而不是按列表的元素排序。在甚至更短:
^{pr2}$在这两种方法中,你先按数字排序,然后按字母顺序排序。在
我想在下面的问题中可能有人问过这个问题:
{a1}
以下是戴夫·韦伯给出的解释:
The ^{} argument to ^{} 指定一个包含一个参数的函数,用于从每个列表元素中提取比较键。因此,我们可以创建一个简单的
lambda
,它返回要在排序中使用的每行的最后一个元素:A ^{} is a simple anonymous function. 当您想创建这样一个简单的一次性函数时,它很方便。不使用
^{pr2}$lambda
的等效代码是:如果要对更多的条目进行排序,只需使
key
函数返回一个元组,该元组包含按重要性排序的值。例如:或者:
相关问题 更多 >
编程相关推荐