1-line idiom to replace if blocks

Andrew Koenig ark at research.att.com
Wed Jan 22 08:39:03 EST 2003


>> And, of course, if you really want short-circuiting, you can write this:

>> result=[lambda:value-if-false, lambda:value-if-true][condition]()

Justin> I like it except I'd add "[not not condition]" to ensure a 0 or a 1.

You don't need to do that -- instead, you can write

   result=[lambda:value-if-true, lambda:value-if-false][not condition]()

-- 
Andrew Koenig, ark at research.att.com, http://www.research.att.com/info/ark




More information about the Python-list mailing list