为什么排序列表 return None?
Why does sorting a list return None?
我的代码是用python3写的,目的是打印出回文。
它应该遍历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
语句,控制台只打印出 'None'.
据我所知我的逻辑是正确的,那么为什么会这样呢?
编辑:
另外,当我以相反的顺序对列表进行排序时,99999 排在第一位。我猜这是因为 python 查看连续的 9 并认为它是最大的。
但是,有没有简单的方法可以得到实际最大的数字?
list.sort()
总是returnsNone(列表排序in-place)。你想要的是 sorted(list)
其中 returns 一个新的排序列表。
然后你可以这样排序:
mylist = [int(x) for x in mylist]
mylist.sort(reverse=True)
mylist = [str(x) for x in mylist]
我的代码是用python3写的,目的是打印出回文。 它应该遍历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
语句,控制台只打印出 'None'.
据我所知我的逻辑是正确的,那么为什么会这样呢? 编辑: 另外,当我以相反的顺序对列表进行排序时,99999 排在第一位。我猜这是因为 python 查看连续的 9 并认为它是最大的。 但是,有没有简单的方法可以得到实际最大的数字?
list.sort()
总是returnsNone(列表排序in-place)。你想要的是 sorted(list)
其中 returns 一个新的排序列表。
然后你可以这样排序:
mylist = [int(x) for x in mylist]
mylist.sort(reverse=True)
mylist = [str(x) for x in mylist]