Мне было интересно, как считается значение item1 и item2?
import functools
lst = [ 2, 1, 3, 6,0, 4, 5]
def compare(item1, item2):
print item1, item2
return (item1) - (item2)
print lst
sorted(lst, key=functools.cmp_to_key(compare))
Результат приведен ниже
[2, 1, 3, 6, 0, 4, 5]
1 2
3 1
3 2
6 2
6 3
0 3
0 2
0 1
4 2
4 6
4 3
5 3
5 6
5 4
Out[25]: [0, 1, 2, 3, 4, 5, 6]
Я хочу знать, как и на каком основании считаются значения item1
и item2
?
functools.cmp_to_key
преобразуется между ними. - person Adam Smith   schedule 26.11.2017cmp_to_key
, см. здесь. - person Sebastian Mendez   schedule 26.11.2017item1
иitem2
в своем вопросе. Я хочу знать, как учитываются эти элементы. - person Rajat Raj   schedule 26.11.2017compare
, пройдя черезfunctool.cmp_to_key
, определение которой вы сказали, что прочитали. Если вы спрашиваете, почему он сравнивает два сравниваемых элемента и почему именно в таком порядке, ну, я думал, вы сказали, что знаете, что Python реализует Timsort, потому что это алгоритм, которому он следует. Потратьте полчаса и еще раз прочитайте две ссылки, которые я вам оставил, потому что они отвечают на все вопросы, которые у вас могут возникнуть по этой теме. - person Adam Smith   schedule 26.11.20171
и2
, во второй3
и1
, в третьей3
и2
. Мой вопрос в том, как по какому правилу передаются эти значения? - person Rajat Raj   schedule 26.11.2017functools.cmp_to_key
как функцию @decorator из-за того, как она написана, что делает ее использование еще проще. - person martineau   schedule 26.11.2017