python - 为什么代码创建的列表不包含大于 99,999 的值 (Python)

标签 python list palindrome

此代码旨在查找由两个 3 位数乘积创建的最大回文数。

我确信有更有效的方法来解决这个问题,欢迎您发布它们,但在我学习的这个阶段,我最感兴趣的是如何编辑我的代码已编写以使其正常工作。

当我运行此代码时,它正确创建了一个回文排序列表,但列表中的最大数字是 99,999。我不明白为什么这个列表没有超出这个范围。

def palindromes():
    product_list=[]
    palindrome_list=[]
    for a in range(100,1000):
        for b in range(100,1000):
            product_list.append(a*b)
    for product in product_list:
        product = str(product)
        if len(product) % 2 == 0:
            if product[0]==product[5] and product[1]==product[4] and product[2]==product[3]:
                palindrome_list.append(product)
        if len(product) % 2 != 0:
            if product[0]==product[4] and product[1]==product[3]:
                palindrome_list.append(product)

    palindrome_list = sorted(set(palindrome_list))
    return palindrome_list

print(palindromes()) 

最佳答案

您的代码正在执行您告诉它执行的操作。

与您的假设相反,您的列表中有很多大于 99,999 的数字

我已经执行了您的代码,列表中的第一个结果是:101101 显然是 > 99999

但是还有其他更大的,例如 561165888888,它们也在您的列表中。

该列表总共包含 650 个回文。这些是您可以根据开始条件生成的唯一内容

无法达到 999,999,因为它无法在您的 for 循环中达到...

Python 只是按照你告诉它的去做。

编辑:就像奥斯卡的回答所说,你应该将限制设置为1001,然后回文999,999就会出现。

关于python - 为什么代码创建的列表不包含大于 99,999 的值 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15822924/

相关文章:

python函数更改列表值

python - 在python中按文件名升序连接csv文件

python - 我的程序将音乐速度降低了 50%,但仅限于一个 channel

list - 在 Coq 中递归搜索列表

c - 通过递归函数打印链表的节点

Python:搜索一个单词中最长的回文和一个单词/字符串中的回文

java - 回文链表

python - 需要找到特定长度的所有回文

python - 如何在 Python zeep 中指定 SOAP 服务器 URL

python - selenium move_to_element 并不总是鼠标悬停