加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 21:52:23 所属栏目:Python 来源:网络整理
导读:我有一本需要排序的字典.我想根据值对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)] sort

我有一本需要排序的字典.我想根据值对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')]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读