1

我试图通过比较字符串的连接来对字符串数组进行排序,这样当你连接数组中的所有字符串时,你会得到最大值。但是,我在排序函数中不断收到错误: ValueError: need more than 1 value to unpack

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/

4

1 回答 1

1

key函数只接受一个参数。传递给您的 key 函数的值只是您的集合中当前正在考虑在列表的排序版本中定位的元素。它没有做任何实际的比较。sort 函数在内部执行此操作。

还有另一个函数调用cmp它执行比较。它需要两个参数,有关更具体的详细信息,请参阅文档

于 2017-08-07T03:49:39.837 回答