您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 基于第一列然后下一列进行排序

5b51 2022/1/14 8:20:44 python 字数 2149 阅读 492 来源 www.jb51.cc/python

我有一本需要排序的字典.我想根据值对dict进行排序.并且作为下一步,如果两个键具有相同的值,我想基于键的词典值进行排序.我试过这个.>>> l {'a': 5, 'aa': 5, 'c': 1, 'b': 7} >>> sorted(l) ['a', 'aa', 'b', 'c'] >>> sorted

概述

我有一本需要排序的字典.我想根据值对dict进行排序.并且作为下一步,如果两个键具有相同的值,我想基于键的词典值进行排序.

我试过这个.

>>> l
{'a': 5,'aa': 5,'c': 1,'b': 7}
>>> sorted(l)
['a','aa','b','c']
>>> sorted(l.items())
[('a',5),('aa',('b',7),('c',1)]
>>> sorted(l.items(),reverse=True)
[('c',1),('a',5)]
>>> sorted(l.items(),key=l.get,reverse=True)
[('a',7)]
>>> l
{'a': 5,'b': 7}
>>> 5>7
False
>>> sorted(l.items(),7)]
>>> sorted(l,reverse=True)
['b','a','c']
>>> s=sorted(l,reverse=True)
>>> s
['b','c']
>>> s.sort()
>>> s
['a','c']

d = {'a': 5,'b': 7}
result = sorted(d.items(),key=lambda x: (x[1],x[0]))
print(result)

输出

[('c',7)]

如果您希望值按升序排列,而第二种排序按降序排列,则可以执行以下操作:

d = {'a': 5,reverse=True,key=lambda x: (-x[1],7)]

有关排序的更多信息,请参阅Sorting Howtos.

如果你有一个只包含字符串的元组列表,你可以这样做:

l = [('foo','bar'),('foo','spam'),('baz','egg')]

result = sorted(l,key=lambda x: (x[0],[-ord(c) for c in x[1]]))
print(result)

输出

[('baz','egg'),'bar')]

总结

以上是编程之家为你收集整理的python – 基于第一列然后下一列进行排序全部内容,希望文章能够帮你解决python – 基于第一列然后下一列进行排序所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶