2015-12-03 77 views
0

发生,为什么下面的代码做等于“无”:奇怪的事情与追加

a = [1] 
a = a.append(0) if len(a) == 1 else a 

这发生在两个Python 2和3

+2

'append'修改'a'并返回'None'。 – Akavall

回答

3

append()没有返回值。只是这样做:

a = [1] 
if len(a) == 1: 
    a.append(0) 
1

它只是恰巧list.append不返回列表。它变异并且什么都不返回(None)。

在你的情况下,a = a +[0] if len(a) == 1 else a将工作。但以下更简单:if len(a) == 1: a.append(0)