pythoncmp
㈠ python3 为什么取消了sort方法中的cmp参数
使用functools.cmp_to_key 即可。
附通过的代码:
class Solution:
# @param {integer[]} nums
# @return {string}
def largestNumber(self, nums):
from functools import cmp_to_key
key = cmp_to_key(lambda x,y: int(y+x)-int(x+y))
res = ''.join(sorted(map(str, nums), key=key)).lstrip('0')
return res or '0'
㈡ python编程中cmp()函数是什么意思
cmp( x, y)
Compare the two objects x and y and return an integer according to the outcome. The return value is negative if x < y, zero if x == y and strictly positive if x > y.
比较2个对象,前者小于后者返回-1,相等则返回0,大于后者返回1.
㈢ python cmp import什么模块
cmp是Python自带的比较函数,无需import模块。
参照官方手册:
https://docs.python.org/2/library/functions.html#cmp
㈣ python cmp & sorted
你理解错了
sorted函数的cmp参数,表示对序列排序的具体实现。你的mycmp就是实现,他是将mylist中的元素的第二个子元素进行两两比较,并按照从小到大的顺序排列。这样就得到了结果[['c', 0], ['a', 1], ['b', 4]]
㈤ 关于python3没有cmp,如何代替的问题
>>>sorted(['bob','Bob','about','Zoo','Credit'],key=str.lower)
['about','bob','Bob','Credit','Zoo']
忽略大小写的比较,先转小写作为键值排序
㈥ python中比较大小的偏函数中,为什么还要写一个'cmp=',
3开始没这个函数了,官方文档是这么写的
The cmp() function should be treated as gone, and the __cmp__() special method is no longer supported. Use __lt__() for sorting, __eq__() with __hash__(), and other rich comparisons as needed. (If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b).)
大意就是cmp()函数已经“离开”了,如果你真的需要cmp()函数,你可以用表达式(a > b) - (a < b)代替cmp(a,b)