13
การกำหนดภายในแลมบ์ดานิพจน์ใน Python
ฉันมีรายการของวัตถุและฉันต้องการลบวัตถุทั้งหมดที่ว่างเปล่ายกเว้นรายการเดียวโดยใช้filterและlambdaนิพจน์ ตัวอย่างเช่นหากอินพุตคือ: [Object(name=""), Object(name="fake_name"), Object(name="")] ... ผลลัพธ์ควรเป็น: [Object(name=""), Object(name="fake_name")] มีวิธีเพิ่มงานให้กับlambdaนิพจน์หรือไม่? ตัวอย่างเช่น: flag = True input = [Object(name=""), Object(name="fake_name"), Object(name="")] output = filter( (lambda o: [flag or bool(o.name), flag = flag and bool(o.name)][0]), input )