附加到列表中

时间:2017-10-16 05:54:05

标签: python list append

def silly(n):
    """requires: n is an int > 0
    Gets n inputs from user
    Prints 'Yes' if the inputs are a palindrome; 'No' otherwise"""
    assert type(n) == int and n > 0
    for i in range(n):
        result= []
        elem = input('Enter something: ')
        result.append(elem)
        print(result)

    if isPal(result):
        print('Is a palindrome')
    else:
        print('Is not a palindrome')

如果您尝试运行此功能,例如,当n = 3时,为什么elem不能正确附加到结果?它将打印作为新的结果列表。这消息了我的isPal函数。

3 个答案:

答案 0 :(得分:3)

for循环的第一行用新列表替换result变量。

result= []

您应该在for循环之前执行此操作。

答案 1 :(得分:3)

交换这些行:

result = []
for i in range(n):
    # ...

或者您将在每次迭代中重新分配result

答案 2 :(得分:2)

问题在于您每次都在重新定义结果。

def silly(n):
    """requires: n is an int > 0
    Gets n inputs from user
    Prints 'Yes' if the inputs are a palindrome; 'No' otherwise"""
    assert type(n) == int and n > 0
    result= []
    for i in range(n):
        elem = input('Enter something: ')
        result.append(elem)
    print(result)