Неправильно сортируется список из целых чисел в строковом представлении
Есть большой список 5,6-тизначных целых чисел. Некоторые повторяются. Вот кусок этого списка:
palindrom=['84448', '84448', '84448', '84448', '85058', '85058', '85158', '85158', '85158', '85158', '85158', '85158', '85158', '85158', '853358', '853358', '85358', '85358', '85358', '85358', '855558', '855558', '861168', '861168', '86268', '86268', '86268', '86268', '86268', '86268', '86268', '86268', '86268', '86268', '86668', '86668', '86768', '86768', '86768', '86768', '86768', '86768', '86768', '86768', '86768', '86768', '86768', '86768', '86868', '86868', '86868', '86868', '86868', '86868', '86868', '86868', '86868', '86868', '87078', '87078', '87178', '87178', '87278', '87278', '87278', '87278', '87478', '87478', '87478', '87478', '87978', '87978', '87978', '87978', '87978', '87978', '88088', '88088', '88088', '88088', '88088', '88088', '88088', '88088', '88088', '88088', '88088', '88088', '88088', '88088', '88288', '88288', '88288', '88288', '88288', '88288', '886688', '886688', '88688', '88688', '88688', '88688', '88788', '88788', '88788', '88788', '88788', '88788', '88788', '88788', '88888', '88888', '88888', '88888', '888888', '888888', '89198', '89198', '89198', '89198', '89298', '89298', '89298', '89298', '89298', '89298', '89298', '89298', '89298', '89298', '89498', '89498', '89598', '89598', '89598', '89598', '89598', '89598', '89598', '89598', '89698', '89698', '89698', '89698', '89798', '89798', '90009', '90009', '90009', '90009', '90109', '90109', '90209', '90209', '906609', '906609', '90909', '90909', '90909', '90909', '90909', '90909', '90909', '90909', '90909', '90909', '91719', '91719', '91719', '91719', '92129', '92129', '92229', '92229', '92329', '92329', '92529', '92529', '92529', '92529', '92629', '92629', '92829', '92829', '93639', '93639', '93639', '93639', '93839', '93839', '93939', '93939', '93939', '93939', '94149', '94149', '94249', '95259', '95259', '95259', '95259', '95559', '95559', '95659', '95659', '96369', '96369', '96669', '96669', '96869', '96869', '97079', '97079', '98189', '98189', '98289', '98289', '98289', '98289', '98489', '98489', '98589', '98589', '98789', '98789', '98889', '98889', '98889', '98889', '99099', '99099', '99099', '99099', '99099', '99099', '99099', '99099', '99099', '99099', '99199', '99199', '99299', '99299', '99599', '99599', '99699', '99699', '99699', '99699', '99799', '99799', '99899', '99899', '99999', '99999', '99999', '99999']
Когда я применяю встроенные max(), sort(), sorted() возвращает '99999' (правильный ответ '611116')
Как я понял некоторые встроенные функции видят весь список как список строк, но ведь не все?
И очень волнующий меня вопрос о поиске объекта в списке и определенными проблемами с этим, говорят, это не так просто.
Я столкнулся с такой же проблемой?
Ответы (1 шт):
Автор решения: magistar
→ Ссылка
Вы можете использовать параметр key.
Например:
sorted(['666542', '999'], key=int)
Выдаст список ['999', '666542']
(Значения останутся строками).
У функции max этот параметр также присутствует.