为了账号安全,请及时绑定邮箱和手机立即绑定

list[-1] 不以列表的最后一项为目标(回文中有两个连续的零)

list[-1] 不以列表的最后一项为目标(回文中有两个连续的零)

拉丁的传说 2023-03-01 16:03:15
我正在编写一个简单的代码来检查数字是否为回文。每当数字有两个连续的零时,print('removing',palind[-1])将列表中的错误零作为目标。n = 200314413002x = npalind = []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 checkremoving 2removing 2[0, 0, 3, 1, 4, 4, 1, 3, 0, 0] is still a palindromeremoving 0removing 0[3, 1, 4, 4, 1, 3, 0, 0] is still a palindrome200314413002 is not a palindrome200314413002 is a palindrome我错过了什么?
查看完整描述

2 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

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

palind.remove(palind[-1])

它删除列表的第一项 equals palind[-1],如果有多个相等的项目,这将是一个问题。

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

del palind[-1]


查看完整回答
反对 回复 2023-03-01
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

就像 zvone 在他们的回答中所说的那样,它remove()不会根据索引删除,而是根据值删除。要根据索引删除,请使用.pop():


for i in palind:

    if palind[0] == palind[-1] and len(palind) % 2 == 0:

        print('removing',palind.pop(0))

        print('removing',palind.pop(-1))

        print(palind,'is still a palindrome')

        actual_palind.append(x)

    else:

        print(x,'is not a palindrome')

        break

        

输出:


[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

[0, 3, 1, 4, 4, 1, 3, 0] is still a palindrome

removing 0

removing 0

[3, 1, 4, 4, 1, 3] is still a palindrome

removing 3

removing 3

[1, 4, 4, 1] is still a palindrome

200314413002 is a palindrome


查看完整回答
反对 回复 2023-03-01
  • 2 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信