为什么排序列表会返回None?

时间:2017-02-10 22:20:51

标签: python python-3.x reverse palindrome

我的代码是用python 3编写的,它意味着打印出回文。 它应该遍历2个3位数字的所有回文产品,如下所示:

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语句时,控制台只打印出“无”。

据我所知,我的逻辑是有序的,为什么会发生这种情况呢? 编辑: 此外,当我按相反顺序对列表进行排序时,首先是99999。我认为这是因为python看着连续的9并且认为它是最大的。 但是,是否有一种简单的方法可以获得实际最大的数字?

1 个答案:

答案 0 :(得分:5)

list.sort()始终返回None(列表就地排序)。你想要的是sorted(list),它返回一个新的排序列表。

然后你可以这样对它们进行排序:

mylist = [int(x) for x in mylist]
mylist.sort(reverse=True)
mylist = [str(x) for x in mylist]