Создание объекта, который больше, чем любая строка - PullRequest
0 голосов
/ 08 ноября 2019

В Python 3 у меня есть список строк, и было бы полезно иметь возможность добавлять часового, который сравнивал бы больше, чем все элементы в списке.

Есть простой способпостроить такой объект?

Я могу определить класс, возможно, подкласс str, но кажется, что должен быть более простой способ.

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

1 Ответ

0 голосов
/ 08 ноября 2019

Это своего рода наивный ответ, но когда вы имеете дело с числами и вам требуется значение дозорного для сравнения, нередко используется самое большое (или наименьшее) число, которое может содержать определенный тип чисел.

Строки Python сравниваются лексикографически, поэтому для создания «максимальной строки» вам просто нужно создать длинную строку «максимального символа»:

# 1114111 is the highest value that chr seems to accept
MAX_CHAR = chr(1114111)

# One million is entirely arbitary here.
# It should ideally be 1 + the length of the longest possible string that you'll compare against 
MAX_STRING = MAX_CHAR * int(1e6)

Если только нет странных угловых случаевчто я не знаю, MAX_STRING теперь следует считать больше, чем любая другая строка (кроме себя);при условии, что это достаточно долго.

...