Skip to content Skip to sidebar Skip to footer

When To Use `<>` And `!=` Operators?

Couldn't find much on this. Trying to compare 2 values, but they can't be equal. In my case, they can be (and often are) either greater than or less than. Should I use: if a <&g

Solution 1:

Quoting from Python language reference,

The comparison operators <> and != are alternate spellings of the same operator. != is the preferred spelling; <> is obsolescent.

So, they both are one and the same, but != is preferred over <>.

I tried disassembling the code in Python 2.7.8

from dis import dis
form_1 = compile("'Python' <> 'Python'", "string", 'exec')
form_2 = compile("'Python' != 'Python'", "string", 'exec')
dis(form_1)
dis(form_2)

And got the following

10 LOAD_CONST               0 ('Python')
              3 LOAD_CONST               0 ('Python')
              6 COMPARE_OP               3 (!=)
              9 POP_TOP
             10 LOAD_CONST               1 (None)
             13 RETURN_VALUE

  10 LOAD_CONST               0 ('Python')
              3 LOAD_CONST               0 ('Python')
              6 COMPARE_OP               3 (!=)
              9 POP_TOP
             10 LOAD_CONST               1 (None)
             13 RETURN_VALUE

Both <> and != are generating the same byte code

              6 COMPARE_OP               3 (!=)

So they both are one and the same.

Note:

<> is removed in Python 3.x, as per the Python 3 Language Reference.

Quoting official documentation,

!= can also be written <>, but this is an obsolete usage kept for backwards compatibility only. New code should always use !=.

Conclusion

Since <> is removed in 3.x, and as per the documentation, != is the preferred way, better don't use <> at all.

Solution 2:

Just stick to !=.

<> is outdated! Please check recent python reference manual.

Post a Comment for "When To Use `<>` And `!=` Operators?"