Trinary operator?

Neal Norwitz neal at metaslash.com
Fri Apr 19 13:44:46 EDT 2002


Cliff Wells wrote:
> 
> On Fri, 19 Apr 2002 10:37:23 +0100
> Dale Strickland-Clark wrote:
> 
> > >
> > >Or it might be preferable to use a dictionary:
> >
> > But several orders of magnitude more processing. Certainly not for
> > tight, efficient loops.
> >
> 
> It does take considerably longer, but longer is still relative:

Depends, here's 2 more examples, in addition to Cliff's:

import time
gender = 'f'
GENDER_DICT = {'m': 'male', 'f': 'female'}

t = time.time()
for i in range(100000):
    verboseGender = (gender == 'm') and 'male' or 'female'
print time.time() - t

t = time.time()
for i in range(100000):
    verboseGender = {'m': 'male', 'f': 'female'}.get(gender, 'unknown')
print time.time() - t

t = time.time()
for i in range(100000):
    verboseGender = GENDER_DICT.get(gender, 'unknown')
print time.time() - t

t = time.time()
for i in range(100000):
    try: verboseGender = GENDER_DICT[gender]
    except KeyError: verboseGender = 'unknown'
print time.time() - t

0.248443961143
0.696393966675
0.322777986526
0.239256024361

Neal



More information about the Python-list mailing list