这两个创建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)
itemgetter(0)
获取0th
索引处的项。你知道吗在第一种情况下,您将
0th
的v
索引按相反顺序排序。所以基本上你实际上在做的是按相反的顺序排列0th
索引[“t1”,“t2”],[“t3”,“t4”]和[“tdfgdf99”,“x99”]。你知道吗在第二种情况下,您将
v
排序,这是列表值-基本上[["t1","t2"], ["t3, "t4"], ["tdfgdf99","x99"]]
是按相反的顺序排序的。lambda k: k
的目的就是从这个列表中选择一个元素并返回。你知道吗相关问题 更多 >
编程相关推荐