Мой код написан на python 3 и предназначен для печати палиндромов. Он должен перебрать все палиндромных продукты 2 3-х цифр, как показано ниже:Почему сортировка списка возвращает None?
mylist=[]
for i in range(999,99,-1):
for x in range(999, i-1, -1,):
number=i*x
number=str(number)
if number==number[::-1]:
#print(number)
mylist.append(number)
mylist=mylist.sort(reverse=True)
print(mylist)
Примечание комментируемой из печати. Когда это было все еще на месте, все палиндромы, которые должны были быть распечатаны, вышли. Когда я запускаю свой код без инструкции print
, консоль выводит только «Нет».
Насколько я вижу, моя логика в порядке, так почему это происходит? EDIT: Кроме того, когда я сортирую свой список в обратном порядке, на первом месте стоит 99999. Я понимаю, это потому, что python смотрит на последовательные 9 и считает, что это самый большой. Однако есть ли простой способ получить самое большое количество?
свяжешь 'mylist' к результату вызова' .sort' который является операцией, в месте, которое возвращает 'None'. Просто выполните 'mylist.sort (reverse = True)'. –
@Shawn Li Не уверен, что вы имеете в виду в своем редактировании, но номера сортируются по возрастанию числового порядка по умолчанию, но вы добавили 'reverse = True', который поместит наибольшее число первым - потому что хорошо, это * есть * фактический самое большое число. – JulienD
@JulienD они не сортируются по числовому порядку, потому что на первом месте стоит 99999, но число, такое как 101101, больше, чем 99999. Так что я хочу сказать, что вы можете сделать число с наибольшим числом, самое близкое к бесконечности, на первом месте? –