Python 如何用两个键对lambda进行排序?
我很抱歉用这个Python 如何用两个键对lambda进行排序?,python,map,lambda,sorted,Python,Map,Lambda,Sorted,我很抱歉用这个 ThreadList.append([''.join(map(str,[Thread])), date, rrf[5]]) SendThreadList = '' ThreadList = sorted(ThreadList, key=lambda Entry: Entry[1], reverse=True) ThreadList = sorted(ThreadList, key=lambda Entry: Entry[2], reverse=True) sorted仅显示
ThreadList.append([''.join(map(str,[Thread])), date, rrf[5]])
SendThreadList = ''
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[1], reverse=True)
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[2], reverse=True)
sorted仅显示第二个已排序,如何使用键中的两个条目进行排序???如果要按条目[1]排序,则按条目[2]排序,然后将lambda作为元组返回…:
ThreadList = sorted(ThreadList, key=lambda Entry: (Entry[1], Entry[2]), reverse=True)
有时更具可读性(并且可能更快)的是使用
操作符
模块并使用key=operator.itemgetter(1,2)
如果您想按条目[1]排序,那么条目[2],然后将lambda作为元组返回…:
ThreadList = sorted(ThreadList, key=lambda Entry: (Entry[1], Entry[2]), reverse=True)
有时更具可读性(并且可能稍微快一点)的方法是使用
操作符
模块并使用key=operator.itemgetter(1,2)
虽然这样做是错误的,但如果您交换顺序,您的示例将起作用:
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[2], reverse=True)
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[1], reverse=True)
Python排序是稳定的-如果两个条目在
[1]
上匹配,它们将保持第一个排序的顺序。虽然这样做是错误的,但如果您交换顺序,您的示例将起作用:
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[2], reverse=True)
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[1], reverse=True)
Python排序是稳定的-如果两个条目在
[1]
上匹配,它们将保持第一个排序的顺序。对不起,我的英语不好,我是巴西人,你想用''实现什么。join(map(str,[Thread])
?应用map
,我得到了'.join([str(Thread)])
当然就是str(Thread)
对不起,我的英语不好,我是巴西人,你想用''实现什么。join(map(str,[Thread])
?应用map
,我得到了'.join([str(Thread)])
,这当然就是str(Thread)
@GeorgeSet。抱歉-我不明白-你能试着重新措辞吗?ThreadList=sorted(ThreadList,key=lambda Entry:(Entry[1],Entry[2]),reverse=True)@GeorgeSet。我没有得到的是“检查条目[2]是否为1”?@GeorgeSet。“是的,但作为一个新问题,结合一些你想要达到的目标,可能会更好一些。”乔治赛特。抱歉-我不明白-你能试着重新措辞吗?ThreadList=sorted(ThreadList,key=lambda Entry:(Entry[1],Entry[2]),reverse=True)@GeorgeSet。我没有得到的是“检查条目[2]是否为1”?@GeorgeSet。是的,但是作为一个新的问题,结合一些你想要达到的目标,可能会更好。