gpt4 book ai didi

python - 回文发生器

转载 作者:太空宇宙 更新时间:2023-11-04 09:08:53 26 4
gpt4 key购买 nike

对 python 和一般编程非常缺乏经验。

我正在尝试创建一个函数,该函数生成一个回文数字列表,达到指定的限制。

当我运行以下代码时,它返回一个空列表 []。不确定为什么会这样。

def palin_generator():
"""Generates palindromic numbers."""

palindromes=[]
count=0
n=str(count)

while count<10000:
if n==n[::-1] is True:
palindromes.append(n)
count+=1
else:
count+=1

print palindromes

最佳答案

遍历所有数字是非常低效的。您可以像这样生成回文:

#!/usr/bin/env python
from itertools import count

def getPalindrome():
"""
Generator for palindromes.
Generates palindromes, starting with 0.
A palindrome is a number which reads the same in both directions.
"""
yield 0
for digits in count(1):
first = 10 ** ((digits - 1) // 2)
for s in map(str, range(first, 10 * first)):
yield int(s + s[-(digits % 2)-1::-1])

def allPalindromes(minP, maxP):
"""Get a sorted list of all palindromes in intervall [minP, maxP]."""
palindromGenerator = getPalindrome()
palindromeList = []
for palindrome in palindromGenerator:
if palindrome > maxP:
break
if palindrome < minP:
continue
palindromeList.append(palindrome)
return palindromeList

if __name__ == "__main__":
print(allPalindromes(4456789, 5000000))

这段代码比上面的代码快得多。

另请参阅:Python 2.x remarks

关于python - 回文发生器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17435448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com