def函数中的空列表(列表索引超出范围)

ripj

我不明白为什么def函数中没有使用我的列表。我假设由于输出而为空,但是为什么呢?

def check_palind(x):
    palind = []
    actual_palind = []
    palind = [int(i) for i in str(x)] 
    while palind[0] == palind[-1] and len(palind) % 2 == 0:
        print(palind,'is still a palindrome')
        print('removing',palind.pop(0))
        print('removing',palind.pop(-1))
        actual_palind.append(x)
        actual_palind = set(actual_palind)
        actual_palind = list(actual_palind)
    else:
        actual_palind = []

    return actual_palind
check_palind(900009)

输出:

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

IndexError: list index out of range
赏金
In [19]: def check_palind(x):
    ...:     palind = []
    ...:     actual_palind = []
    ...:     palind = [int(i) for i in str(x)]
    ...:     while palind and palind[0] == palind[-1] and len(palind) % 2 == 0:
    ...:         print(palind,'is still a palindrome')
    ...:         print('removing',palind.pop(0))
    ...:         print('removing',palind.pop(-1))
    ...:         actual_palind.append(x)
    ...:         actual_palind = set(actual_palind)
    ...:         actual_palind = list(actual_palind)
    ...:     else:
    ...:         actual_palind = []
    ...:
    ...:     return actual_palind
    ...:

In [20]: check_palind(900009)
[9, 0, 0, 0, 0, 9] is still a palindrome
removing 9
removing 9
[0, 0, 0, 0] is still a palindrome
removing 0
removing 0
[0, 0] is still a palindrome
removing 0
removing 0
Out[20]: []

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章