PEP 308 - suggestion for generalising the ternary operator

Oren Tirosh oren-py-l at
Wed Feb 12 15:31:11 CET 2003

On Wed, Feb 12, 2003 at 02:53:42AM -0800, damien  morton wrote:
> One Python implimentation of the ternary operator expresses the
> problem as selecting from a list of alternatives:
> [tval,fval][not cond]
> I was thinking over how to generalise this into a more powerfull and
> readable form and came up with this syntax:
> (cond1?value1, cond2?value2, cond3?value3, default_value)
> whose degenerate ternary operator form is:
> (cond? true_value, false_value)
> I think the parentheses should be mandatory.

Hmm... If you replace ? with : the result looks surprisingly like
a dictionary, with parens instead of curly braces:

(cond:value, cond:value, cond:value, cond:value, default_value)

Or maybe:

(cond:value, cond:value, cond:value, cond:value, else:default_value)


More information about the Python-list mailing list