2015-11-12 27 views
7

如何在一個慣用的Python for循環中使用else語句?而不else我可以寫例如:python慣用python for循環if else語句

res = [i for i in [1,2,3,4,5] if i < 4] 

結果是:[1, 2, 3]

上述代碼的正常形式是:

res = [] 
for i in [1,2,3,4,5]: 
    if i < 4: 
     res.append(i) 

的結果是相同的,如慣用的形式:[1, 2, 3]

我想要這個:

res = [i for i in [1,2,3,4,5] if i < 4 else 0] 

我得到SyntaxError: invalid syntax。結果應該是:[1, 2, 3, 0, 0] 這樣做的正常代碼:

res = [] 
for i in [1,2,3,4,5]: 
    if i < 4: 
     res.append(i) 
    else: 
     res.append(0) 

結果是:[1, 2, 3, 0, 0]

回答

11

你被關閉,你只需要三元移動到列表理解的一部分,你'創造價值。

res = [i if i < 4 else 0 for i in range(1,6)]