Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Meanwhile I'll write (a>b)-(a<b), which is what Python suggests after having removed cmp



No, what Python suggests is just returning the value you sort on, or a tuple of the values to sort on.

cmp() is deprecated because there is seldom reason to use it anymore.

E.G:

Sorting words according to their number of letter is just:

    sorted(words, key=len)
You don't return 1, -1 or 0.

If you want to rank participants of a game in a dictionary of scores using names as keys and points as values, you would to:

    sorted(scores.items(), key=lambda score: score[1])
Again you don't return 1, -1 or 0, just the value that is significant. It makes it very, very simple to reason about.


Official docs: https://docs.python.org/3.0/whatsnew/3.0.html#ordering-compa...

> If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b)


αν


I mainly use Python but that would still be unclear to me.

I think the ternary operator is the sweet spot between too verbose and too confusing.


That works nicely too, for those languages with "1-0" booleans. For languages without them (Java, C# come to mind), the ternary is the next-best way.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: