我认为这是一个具有挑战性的。。。在
list = [["hasan",6,"bad","chennai"],
["vishnu",7,"good","chennai"],
["tabraiz",8,"good","bangalore"],
["shaik",5,"excellent","chennai"],
["mani",6,"avarage","kerala"],
["cilvin",9,"excellent","chennai"]]
我把坏的分为1分,一般的2分,好的3分,优秀的4分。 我得到了按默认函数考虑1、2或3索引的升序排序的输出。在
考虑1个指标——一级排序
^{pr2}$输出==>
for i in list:
print i
['tabraiz', 8, 'good', 'bangalore']
['hasan', 6, 'bad', 'chennai']
['vishnu', 7, 'good', 'chennai']
['shaik', 5, 'excellent', 'chennai']
['cilvin', 9, 'excellent', 'chennai']
['mani', 6, 'avarage', 'kerala']
考虑2个指标——二级排序:
list.sort(key= lambda x: (x[3],x[2])
输出==>
['tabraiz', 8, 'good', 'bangalore']
['hasan', 6, 'bad', 'chennai']
['vishnu', 7, 'good', 'chennai']
['shaik', 5, 'excellent', 'chennai']
['cilvin', 9, 'excellent', 'chennai']
['mani', 6, 'avarage', 'kerala']
考虑3个指标——三级排序
list.sort(key= lambda x: (x[3],x[2],x[1])
输出==>
['tabraiz', 8, 'good', 'bangalore']
['hasan', 6, 'bad', 'chennai']
['vishnu', 7, 'good', 'chennai']
['shaik', 5, 'excellent', 'chennai']
['cilvin', 9, 'excellent', 'chennai']
['mani', 6, 'avarage', 'kerala']
这些排序是按升序排列的。在
我想按升序和降序排列。在
比如,如果我想得到第三个索引按降序排列,第二个索引按升序排列,第一个索引按降序排列。在
我该怎么办???在
['mani', 6, 'avarage', 'kerala']
['hasan', 6, 'bad', 'chennai']
['vishnu', 7, 'good', 'chennai']
['cilvin', 9, 'excellent', 'chennai']
['shaik', 5, 'excellent', 'chennai']
['tabraiz', 8, 'good', 'bangalore']
我将从你的问题陈述中提取两个要点
我把坏的分为1分,一般的2分,好的3分,优秀的4分。
我想得到第三个索引按降序排列,第二个索引按升序排列,第一个索引按降序排列。
实施
输出
^{pr2}$你可以将你的排序组合成一个操作,或者四个独立的操作。虽然我先编了一本字典,这样我就可以查到评分了
接下来,对列表进行排序。你可以一次做一个:
^{pr2}$最后一个排序优先,前一个排序只在最后一个排序相等时生效
一次排序会很快变得复杂,但应该更快地进行排序:
其中,列表中四项中的第一项优先,负号将该元素向后排序
相关问题 更多 >
编程相关推荐