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