[issue1771] Remove cmp parameter to list.sort() and builtin.sorted()
David Albert Torpey
report at bugs.python.org
Wed Mar 31 19:40:06 CEST 2010
David Albert Torpey <dtorp at users.sourceforge.net> added the comment:
> sorted(tree, cmp=lambda x, y: 1 if x in tree[y] else -1 if y in tree[x] else 0)
>
> and it gets ['A', 'C', 'B', 'E', 'D'].
That cmp function is nonsense and isn't even close to being correct:
>>> from random import shuffle
>>> for i in range(10):
... t = list(tree)
... shuffle(t)
... print sorted(t, cmp=lambda x, y: 1 if x in tree[y] else -1 if y in tree[x] else 0)
['E', 'C', 'B', 'D', 'A']
['A', 'D', 'C', 'B', 'E']
['C', 'B', 'E', 'D', 'A']
['E', 'D', 'A', 'C', 'B']
['A', 'B', 'D', 'E', 'C']
['D', 'A', 'E', 'C', 'B']
['C', 'D', 'A', 'B', 'E']
['A', 'C', 'B', 'D', 'E']
['A', 'C', 'B', 'E', 'D']
['A', 'C', 'B', 'D', 'E']
> how to convert cmp to key really confused
> me and it surely need more typing time.
Just cut and paste the recipe. Simple.
----------
nosy: +dtorp
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue1771>
_______________________________________
More information about the Python-bugs-list
mailing list