Regarding the "select" statement, I think the most "Pythonic" approach is using 
dictionaries rather than nested ifs. 
Supposing we want to decode abbreviated day names ("mon") to full names 
("Monday"):
day_abbr='mon'

day_names_mapping={
    'mon':'Monday',
    'tue':'Tuesday',
    'wed':'Wednesday',
    'thu':'Thursday',
    'fri':'Friday',
    'sat':'Saturday',
    'sun':'Sunday'
    }
try:
    full_day_name=day_names_mapping[day_abbr.casefold()]
except KeyError:
    raise GoodLuckFixingItException('We don't have "'+day_abbr+'" in our week')

This style is more compact (usually one line per case) and more meaningful 
(generic processing driven by separate data) than a pile of if statement, and 
more flexible: 

full_day_names=('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday')
day_names={x.casefold()[0:3] : x for x in full_day_names}
#

A dict can also contain tuples, lists, and nested dicts, consolidating multiple 
switches over the same keys and organizing nested switches and other more 
complex control structures.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to