Python中文
首页
教程
问答
标签
搜索
登录
注册
python中基于自定义比较器的字典项列表排序
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个值字典,我想根据自己定义的比较对其进行排序。我知道你不会整理字典。以下是重要代码:</p> <pre><code>def cmpFirstVals(tup1,tup2): if tup1[0] > tup2[0]: return True else: return False def cmpSecondVals(tup1,tup2): if tup1[1] > tup2[1]: return True else: return False </code></pre> <p>所以这两个比较函数接受两个int的两个元组。它比较两个元组,如果第一个元组更高,则返回true;如果使用第二个比较器,则(0,4)将高于(0,3)。同样</p> ^{pr2}$ <p>会返回True。在</p> <p>我的dict是用字符串作为键和两个int元组作为值构建的:</p> <pre><code>d = {'objA':(1,12),'objB':(13,3)} //etc etc etc </code></pre> <p>我知道可以对list d.items()进行排序,我最终会用排序后的列表中的前三项构造dict,但是我需要使用这些比较器进行排序。在</p> <p>我需要知道如何通过这些比较器进行排序?在</p> <p>另外,请注意,如果两个元组的索引值相同,则比较器将返回false。(即cmpFirstVals((4,2),(4,3))将返回false)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>呃。。。在</p> <pre><code>byfirst = sort(somedict.values(), key=operator.itemgetter(0)) bysecond = sort(somedict.values(), key=operator.itemgetter(1)) </code></pre> <p>二进制比较器在2.x中被弃用,在3.x中被删除</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
1 回答
如何添加表示整数的擦边字符串?
7 回答
如何添加要在Bokeh中使用的新font.ttf文件?
1 回答
如何添加要显示的矩阵XY轴编号和XY轴
2 回答
如何添加计数?
8 回答
如何添加计数器函数?
10 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
2 回答
如何添加计数器来跟踪while循环中的月份和年份?
1 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
6 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
1 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
5 回答
如何添加评论拉梅尔亚姆
6 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
7 回答
如何添加谷歌地点自动完成到Flask?
3 回答
如何添加超时、python discord bot
10 回答
如何添加超过1dp的检查
5 回答
如何添加距离方法
9 回答
如何添加跟随游戏的敌人精灵
5 回答
如何添加路径以便python可以找到程序?
10 回答
如何添加身份验证/安全性以使用happybase访问HBase?
7 回答