Python max-by?

Пример:

print max(chain_length(i) for i in xrange(1,10001))

Это возвращает максимальную/самую большую "цепочку_длину" (произвольную функцию), но я хочу, чтобы значение i для ввода, которое производит наибольшее значение.

Есть ли удобный способ сделать это?

Ответ 1

max(xrange(1, 10001), key=chain_length)