2024-04-27 19:39:46 发布
网友
我正在尝试编写一个函数,其中是一个字典,它的值是元组,并根据元组中的值对它们进行排序。然而,我感到困惑
如果我跑
return sorted(mydict.values(), key=lambda x:x[0])
它按我想要的顺序返回所有内容,但它不返回我需要的字典键
所以我试着运行这个:
return sorted(mydict.items(), key=lambda x:x[1])
但是顺序变得不同了
就排序而言,这两个调用之间有什么区别
正如Ignacio所描述的,您是按项目的整个值进行排序的。您可以使用下面的代码段按键或值进行排序:
import operator dict = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} print "Unsorted : %s" % dict.items() print "Sorted by key : %s" % sorted(dict.items(), key=operator.itemgetter(0)) print "Sorted by value : %s" % sorted(dict.items(), key=operator.itemgetter(1))
第一个仅按值的第一个元素排序,而第二个按整个值排序。如果希望得到相同的结果,则需要删除第一个元素上的key参数,或者修改第二个元素上的key参数,以额外访问第一个元素
key
正如Ignacio所描述的,您是按项目的整个值进行排序的。您可以使用下面的代码段按键或值进行排序:
第一个仅按值的第一个元素排序,而第二个按整个值排序。如果希望得到相同的结果,则需要删除第一个元素上的
key
参数,或者修改第二个元素上的key
参数,以额外访问第一个元素相关问题 更多 >
编程相关推荐