当前位置: 首页 > 知识库问答 >
问题:

为什么排序列表返回无?[副本]

於功
2023-03-14

我的代码是用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并认为它是最大的。但是,有没有一种简单的方法可以得到实际最大的数字呢?

共有1个答案

郭琨
2023-03-14

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

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

mylist = [int(x) for x in mylist]
mylist.sort(reverse=True)
mylist = [str(x) for x in mylist]
 类似资料:
  • 问题内容: 我已经能够验证结果是否为。但是,它不返回列表。为什么? 问题答案: 对列表进行适当排序,即不返回新列表。写吧

  • 问题内容: 如果我有包含10个元素的列表: 为什么l [10]返回IndexError,而l [-1]返回0? 如果列表中没有以前的元素,我想做的就是抛出一个错误。 问题答案: 在Python中,负列表索引表示从列表右边开始计数的项(即的简写形式)。 如果发现需要负索引来指示错误,那么您可以简单地检查这种情况并亲自引发异常(或在那里进行处理):

  • 我觉得这给了我很小的灵活性每当我使用这个函数。使用此函数时,我通常会查找元素的第一次出现,但它只返回,我发现这一点有些欠缺。 使用此函数的主要原因是每当找到元素时,都会循环,因此使用会失去作用,因为不会短路。是相同的。 我是遗漏了什么,还是必须使用循环来获取JavaScript中的第一个匹配元素?

  • 我一直在玩Java 8 ,我决定对 和 流进行微基准测试。正如预期的那样, 的速度是原来的两倍,但还是出现了其他一些问题--如果我在将数据传递给 之前先对其进行排序,则与传递未排序列表相比, Map->Collect/code>得到结果所需的时间要多出5-8倍。 下面是一个更好的基准测试代码 结果也是相似的: 那么,我的问题是为什么过滤一个未排序的列表比过滤一个已排序的列表更快呢?

  • 问题内容: 我正在创建一个可能更改语言的简单程序,并且将字符串数组中的myBundle.properties文件中的属性列表转换为。 这是文件myBundle.properties: 这是Java代码: 但是,令人惊讶的是,当我执行程序时,它以随意的顺序返回了字符串。为什么枚举有这种奇怪的行为? 问题答案: 我不知道ResourceBundle类的确切详细信息,但是在查看您的代码示例时,似乎它具有

  • 问题内容: 我需要对列表进行排序,然后返回带有列表中已排序项目索引的列表。例如,如果我要排序的列表是,则需要返回。 这个问题以字节为单位发布,但我认为我会在这里重新发布。 http://bytes.com/topic/python/answers/44513-sorting-list-then-return-index- sorted-item 我的具体需求是根据对象的属性对对象列表进行排序。然后