关于list.append语法的困惑

时间:2014-07-04 05:31:42

标签: python

好的,所以我写了这个:

n=123465

def digit_sum(n):
    answer=[]
    n=str(n)

    for x in n:
        print x
        x = int(x)
        answer = answer.append(x)

    return sum(answer)

print digit_sum(n)

问题是我写answer = answer.append(x)时我应该写answer.append(x)。有人可以告诉我为什么我不能写answer = answer.append(x)

2 个答案:

答案 0 :(得分:3)

在列表中调用时,

append始终返回None。因此,通过执行a = a.append(x),您首先将x附加到a,然后将a设置为Noneappend的返回值)。< / p>

答案 1 :(得分:1)

@Hyperboreus回答append时返回None。不谈论代码的充分性,你只能将列表连接到列表:

x = [int(x)]
answer += x

等于answer.extend([int(x)]))
但确定更恰当的是answer.append(int(x)) <@ 1m注释应该被提及作为实现整个事物的pythonic方式:{ {1}}