最初的数据是:
dict = {<User: user2>: {'diff': 48, 'alike': 1}, <User: user3>: {'diff': 42, 'alike': 2}, <User: user4>: {'diff': 45, 'alike': 1}, <User: user5>: {'diff': 43, 'alike':
2}, <User: user6>: {'diff': 46, 'alike': 1}, <User: user7>: {'diff': 46, 'alike': 1}, <User: user8>: {'diff': 49, 'alike': 1}, <User: user9>: {'diff': 50, 'ali
ke': 0}, <User: user10>: {'diff': 46, 'alike': 1}, <User: user11>: {'diff': 37, 'alike': 3}, <User: user12>: {'diff': 50, 'alike': 0}, <User: user13>: {'diff':
50, 'alike': 0}, <User: user14>: {'diff': 50, 'alike': 0}, <User: user15>: {'diff': 50, 'alike': 0}, <User: user16>: {'diff': 50, 'alike': 0}, <User: user17>: {
'diff': 50, 'alike': 0}, <User: user18>: {'diff': 50, 'alike': 0}, <User: user19>: {'diff': 50, 'alike': 0}, <User: user20>: {'diff': 50, 'alike': 0}}
然后我把它分类:
^{pr2}$如何按“diff”排序?在
}的简写,也就是说,它定义了一个函数(有几个限制)。同样的一行可以这样写:
^{pr2}$key
关键字参数应该是一个函数,它接受要排序的列表的元素,并返回排序比较中应该使用的值。lambda
是{首先,您没有对
dict
排序,而是对dicts
的列表进行排序,这是非常不同的事情,尤其是Python中的dict
没有定义顺序。在您可以使用^{} 和^{} 轻松完成此操作:
sorted()
内置函数接受key
关键字参数,这是一个接受该值并给出另一个值进行排序的函数。这里我们使用itemgetter()
从dict
中获取所需的值来进行排序。在编辑:
鉴于你的改变,有两个答案,因为你不清楚。如果需要值列表,只需从原始
^{pr2}$dict
中提取它们:这和拿}来获得良好的性能。在
dict.values()
一样简单。当然,在python2.x下,您将希望使用viewitems()
或{如果你想对}本身就是无序的。在
dict
本身进行排序,那是另一回事,因为{首先,我想指出,
sorted(dict)
不会产生您建议的输出-dict迭代键,而不是默认值:给我们:
要生成已排序的} :
dict
,我们需要使用^{这给了我们:
注意,这里我们必须使用
lambda
语句作为键参数,因为itemgetter()
不幸的是,它不能为我们获得多个级别的项。在相关问题 更多 >
编程相关推荐