2016-02-01 26 views
3

原始碼:用於字典d1,如果d1[w]不存在,則將其初始化爲1.否則增加它。Python三元運算符在字典上的失敗

if d1.get(w) == None: 
    d1[w] = 1 
else: 
    d1[w] += 1 

但是,使用三元運算符失敗了。

d1[w] = 1 if d1.get(w) == None else d1[w] += 1 
             ^
SyntaxError: invalid syntax 

這裏有什麼問題?

+0

錯字那裏,刪除'=' –

回答

6

變化

d1[w] = 1 if d1.get(w) == None else d1[w] += 1 

d1[w] = 1 if d1.get(w) == None else d1[w] + 1 # '+' instead of '+=' 

,或者如@vaultah在他comment建議:

d1[w] = d1.get(w, 0) + 1 
+3

或'D1 [W] = d1.get(w,0)+ 1'。 – vaultah

+0

@MohammedAoufZOUAG我看到,「1 if d1.get(w)== None else d1 [w] + 1」是一個表達式。非常感謝! – sam

+0

@SamShen歡迎您 –