ValueError: need more than 1 value to unpack for lambda function
ValueError: need more than 1 value to unpack for lambda function
我正在尝试通过比较字符串的串联来对字符串数组进行排序,这样当您串联数组中的所有字符串时,您将获得最大值。但是,我不断在排序函数中收到错误:ValueError:需要超过 1 个值才能解包
nums = ['3', '30', '34', '5', '9']
nums.sort(key = lambda (x,y): cmp(x+y,y+x))
# should get me ['9', '5', '34', '3', '30']
# instead, gets me the exception ValueError: need more than 1 value to unpack
为什么会这样?我不能在排序函数中比较这样的值吗?问题的灵感来自 https://leetcode.com/problems/largest-number/
key
函数只有一个参数。传递给您的键函数的值只是您集合中当前考虑在列表的排序版本中定位的元素。它没有进行任何实际比较。排序函数在内部执行此操作。
还有另一个名为 cmp
的函数可以执行比较。它有两个参数,请参阅 docs 了解更具体的细节。
我正在尝试通过比较字符串的串联来对字符串数组进行排序,这样当您串联数组中的所有字符串时,您将获得最大值。但是,我不断在排序函数中收到错误:ValueError:需要超过 1 个值才能解包
nums = ['3', '30', '34', '5', '9']
nums.sort(key = lambda (x,y): cmp(x+y,y+x))
# should get me ['9', '5', '34', '3', '30']
# instead, gets me the exception ValueError: need more than 1 value to unpack
为什么会这样?我不能在排序函数中比较这样的值吗?问题的灵感来自 https://leetcode.com/problems/largest-number/
key
函数只有一个参数。传递给您的键函数的值只是您集合中当前考虑在列表的排序版本中定位的元素。它没有进行任何实际比较。排序函数在内部执行此操作。
还有另一个名为 cmp
的函数可以执行比较。它有两个参数,请参阅 docs 了解更具体的细节。