как посчитать повторяющееся имя в java [закрыто]

Из Python 3 docs :

Этот метод сортирует список на месте, используя только & lt; сравнение между элементами. Исключения не подавляются - если какие-либо операции сравнения не выполняются, вся операция сортировки завершится неудачно (и список, вероятно, останется в частично измененном состоянии).

blockquote>

Документы не гарантируют никаких в частности, но элементы, скорее всего, будут оставлены на частичной сортировке. Порядок сортировки, в котором они находились, когда произошло исключение, и этот порядок может варьироваться в зависимости от реализации или, возможно, (но маловероятно) двух последующих прогонов программы.

Если вы хотите попытаться отсортировать элементы, не беспокоясь о них неудачный переупорядочивание, вы можете использовать встроенную функцию sorted, которая вернет новый список, а не изменит оригинал.

>>> seq = ['b', 'a', 3, 'd', 'c']
>>> try:
...     seq = sorted(seq) # if sorted fails, result won't be assigned
... except Exception: # you may only want TypeError
...     pass
...
>>> seq 
['b', 'a', 3, 'd', 'c'] # list unmodified

EDIT: чтобы все говорили, говоря что-то вроде

после того, как он видит два разных типа, он вызывает исключение

blockquote>

Я знаю, что вы, вероятно, знаете, что этот вид заявления является упрощение, но я думаю, что, не будучи ясным, это вызовет путаницу.

Следующий пример состоит из двух классов A и B, которые поддерживают сравнение друг с другом через их соответствующие методы __lt__. Он отображает список, смешанный из этих двух типов, отсортированный по list.sort(), а затем напечатанный в отсортированном порядке без каких-либо исключений:

class A:
    def __init__(self, value):
        self.a = value

    def __lt__(self, other):
        if isinstance(other, B):
            return self.a < other.b
        else:
            return self.a < other.a

    def __repr__(self):
        return repr(self.a)

class B:
    def __init__(self, value):
        self.b = value

    def __lt__(self, other):
        if isinstance(other, A):
            return self.b < other.a
        else:
            return self.b < other.b

    def __repr__(self):
        return repr(self.b)

seq = [A(10), B(2), A(8), B(16), B(9)]
seq.sort()
print(seq)

. Вывод этого:

[2, 8, 9, 10, 16]

Не важно, чтобы вы понимали каждую деталь этого. Просто проиллюстрировать, что список смешанных типов может работать с list.sort(), если все части есть

-11
задан Traven 3 August 2014 в 10:53
поделиться