创建x
这两个函数是否相同?我不明白为什么itemgetter在这种情况下使用0
作为输入时似乎返回正确的变量。
itemgetter是否按字典键正确排序?他们都打印相同的
from operator import itemgetter
lvls = {1: ["t1","t2"], 2: ["t3","t4"], 3: ["tdfgdf99","x99"]}
x = sorted((v for k,v in lvls.items()),key=itemgetter(0),reverse=True)
print (x)
x = sorted((v for k,v in lvls.items()),key=lambda k: k,reverse=True)
print (x)
答案 0 :(得分:1)
itemgetter(0)
获取0th
索引处的项目。
在第一种情况下,您按相反的顺序对0th
的{{1}}索引进行排序。所以基本上你实际上在做的是以相反的顺序排序[“t1”,“t2”],[“t3”,“t4”]和[“tdfgdf99”,“x99”]的v
索引。 / p>
在第二种情况下,您正在排序0th
这是列表值 - 基本上是v
,顺序相反。 [["t1","t2"], ["t3, "t4"], ["tdfgdf99","x99"]]
的目的是简单地从此列表中选择一个元素并返回。