当我尝试求解项目Euler问题4时,我写了代码:
l=[]
for i in range(100,1000):
for j in range (100,1000):
a=i*j
b=str(a)
if b==b[::-1]:
l.append(b)
print(max(l[-10:]))
答案是906609。但是,当我编写而不是max(l[-10:])
时,max(l)
结果变成了99999。但是,问题是列表中的数字是相同的,但是为什么 max 结果是不同的?
您获得的原因不是 int
max是因为字符串之间的比较。您正在将字符串附加到列表中。
替换
l.append(b)
l.append(a)
获得预期的输出。