Почему переопределение __lt__ также изменяет операцию «больше, чем»? Зачем использовать ее для сортировки?

#python #python-3.x

#python #python-3.x

Вопрос:

Я делаю leetcode (https://leetcode.com/problems/lar&est-number /) и я нашел решение в leetcode следующим образом :

 class Lar&erNumKey(str):
    def __lt__(x, y):
        return x y &&t; y x

class Solution:    
    def lar&estNumber(self, nums: List[int]) -&&t; str:
        lar&est_num = ''.join(sorted(map(str, nums), key=Lar&erNumKey))
        return '0' if lar&est_num[0] == '0' else lar&est_num
  

Я не уверен, почему здесь она переопределяет __lt__ в Lar&erNumKey . Почему бы не переопределить __&t__ ?
И почему условие в __lt__ используется x y &&t; y x ?

Комментарии:

1. Убедитесь, что ваши вопросы являются автономными. И почему это условие в __lt__ используется x y &&t; y x ?,,, в настоящее время невозможно ответить, не ссылаясь на вопрос leetcode или не угадывая его содержимое.

Ответ №1:

Я не уверен, почему здесь она переопределяет __lt__ в Lar&erNumKey . Почему бы не переопределить __&t__ ?

согласно документам sorted , использует __lt__ для сортировки,

Процедуры сортировки гарантированно используются __lt__() при проведении сравнений между двумя объектами.