Idiosyncratic python

Steven D'Aprano steve at pearwood.info
Thu Sep 24 20:08:13 EDT 2015


On Fri, 25 Sep 2015 02:54 am, Todd wrote:

> Using list indexing with booleans in place of a ternary operator.
> 
> a = False
> b = [var2, var1][a]
> 
> Instead of:
> 
> b = var1 if a else var2

Ah, you youngsters...  :-)

Using a bool to index into a list used to be the standard idiom, before the
ternary if was added to the language. So I don't consider it "weird",
especially as a lot of my code still supports Python 2.4 which doesn't
include the ternary if.

Sometimes, instead of a list, I'll use a dict:

    {True: value1, False: value2}[flag]

to emulate ternary if.



-- 
Steven




More information about the Python-list mailing list