При вызове sorted
получается List[int]
, который не несет информации о длине. Таким образом, создание кортежа из него также не имеет информации о длине. Количество элементов просто не зависит от используемых вами типов.
Вы должны сказать своему контролеру типов доверять вам в таких случаях:
a: Tuple[int, int] = tuple(sorted([1, 3])) # type: ignore
Либо создайте сортировку с учетом длины:
def sort_pair(a: T, b: T) -> Tuple[T, T]:
return (a, b) if a < b else (b, a)