Trinary operator?

Cliff Wells logiplexsoftware at earthlink.net
Wed Apr 17 14:16:28 EDT 2002


On Wed, 17 Apr 2002 13:02:56 -0500
Mark McEahern wrote:

> > Not that it's a big deal since there's many ways to do that, but can I use
> > something like
> >     verboseGender = (gender == 'm') ? 'male' : 'female'
> > in Python?
> 
> People seem to use and/or for that:
> 
> >>> gender = 'm'
> >>> verbose = (gender == 'm' and 'male' or 'female')
> >>> verbose
> 'male'
> >>> gender = 'f'
> >>> verbose = (gender == 'm' and 'male' or 'female')
> >>> verbose
> 'female'

Or it might be preferable to use a dictionary:
 
>>> gender = 'f'
>>> verbose = {'m': 'male', 'f': 'female'}.get(gender, 'unknown')
>>> verbose
'female'
>>> gender = 'm'
>>> verbose = {'m': 'male', 'f': 'female'}.get(gender, 'unknown')
>>> verbose
'male'
>>> gender = 'x' 
>>> verbose = {'m': 'male', 'f': 'female'}.get(gender, 'unknown')
>>> verbose
'unknown'

IMHO, it's no less readable and a bit more flexible.

-- 
Cliff Wells, Software Engineer
Logiplex Corporation (www.logiplex.net)
(503) 978-6726 x308  (800) 735-0555 x308





More information about the Python-list mailing list