2015-12-03 70 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)