gpt4 book ai didi

python - list[-1] 不针对列表的最后一项(回文中有两个连续的零)

转载 作者:行者123 更新时间:2023-12-02 19:22:39 25 4
gpt4 key购买 nike

我正在编写一个简单的代码来检查数字是否是回文。只要数字有两个连续的零,print('removing',palind[-1]) 就会定位列表中的错误零。

n = 200314413002
x = n
palind = []
while n > 0:
d = n % 10
n = n // 10
palind.append(d)

print(palind, 'is to check')

actual_palind = []

for i in palind:
if palind[0] == palind[-1] and len(palind) % 2 == 0:
print('removing',palind[0])
palind.remove(palind[0])
print('removing',palind[-1])
palind.remove(palind[-1])
print(palind,'is still a palindrome')
actual_palind.append(x)
else:
print(x,'is not a palindrome')
break

print(x, 'is a palindrome')

这是输出

[2, 0, 0, 3, 1, 4, 4, 1, 3, 0, 0, 2] is to check
removing 2
removing 2
[0, 0, 3, 1, 4, 4, 1, 3, 0, 0] is still a palindrome
removing 0
removing 0
[3, 1, 4, 4, 1, 3, 0, 0] is still a palindrome
200314413002 is not a palindrome
200314413002 is a palindrome

我错过了什么?

最佳答案

这不会从列表中删除最后一项:

palind.remove(palind[-1])

它会删除列表中等于 palind[-1] 的第一个项目,如果有多个相等的项目,这就会出现问题。

要删除列表的最后一项,请执行以下操作:

del palind[-1]

关于python - list[-1] 不针对列表的最后一项(回文中有两个连续的零),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62849012/

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