【发布时间】:2013-03-13 21:32:23
【问题描述】:
假设我定义了一个列表列表lol:
lol = [['malasia', 0.02, 56.3], ['chile', 0.03, 34.9],
['hungria', 0.01, 45.9], ['ahumada', 0.001, 1]]
那么,
lol.sort(lambda x, y: cmp(y[2], x[2]))
按每个子列表的最后一个元素对lol 进行排序...
我只是想了解sort的组成部分:
cmp(y,x)与数字比较并返回-1(y 小于 x)、0(x 等于 y)或1(y 大于 x)。lambda在每个列表的最后一个元素上定义一个函数? 那么 lambda 里面的排序呢?我很困惑——谁能解释一下 lambda 函数的作用?
【问题讨论】:
-
cmp参数仅支持向后兼容。它已从 Python3 中删除。始终使用key=代替。如果您遇到关键功能无法使用的棘手情况,请使用functools.cmp_to_keyhelper