2015-11-12 28 views
7

मैं एक idiomatic पायथन for पाश में else कथन का उपयोग कैसे कर सकता हूं?लूप के लिए पायथन idiomatic पायथन अगर अन्य कथन

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]else बिना मैं जैसे लिख सकते हैं

और मुझे यह चाहिए:

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)] 
संबंधित मुद्दे