pythonpython-3.xcomparison-operators

How to use cmp() in Python 3?


I cannot get the command cmp() to work in Python 3.

Here is the code:

a = [1,2,3]
b = [1,2,3]
c = cmp(a,b)
print (c)

I am getting the error:

Traceback (most recent call last):
  File "G:\Dropbox\Code\a = [1,2,3]", line 3, in <module>
    c = cmp(a,b)
 NameError: name 'cmp' is not defined

Solution

  • As mentioned in the comments, cmp doesn't exist in Python 3. If you really want it, you could define it yourself:

    def cmp(a, b):
        return (a > b) - (a < b) 
    

    which is taken from the original What's New In Python 3.0. It's pretty rare -- though not unheard of -- that it's really needed, though, so you might want to think about whether it's actually the best way to do whatever it is you're up to.