На самом деле вы не показываете расшифровку того, как вы изменили оператор, так что это только предположение, но обратите внимание, что эти две строки
lsorted= sort(unsorted[:halflen])
rsorted = sort(unsorted[halflen:])
не передают comp_func.Поэтому, если бы вы сделали что-то вроде этого:
>>> sort([(3,4),(1,2), (2,3)])
[(1, 2), (2, 3), (3, 4)]
>>> sort([(3,4),(1,2), (2,3)],lambda x,y: x[1] > y[1])
[(3, 4), (1, 2), (2, 3)]
, вы получили бы противоречивые результаты, потому что половину времени они сортируют с другим comp_func.Передача comp_func в строки lsorted=
и rsorted=
исправляет это:
>>> sort([(3,4),(1,2), (2,3)],lambda x,y: x[1] > y[1])
[(3, 4), (2, 3), (1, 2)]