Используйте список списков и список функций
def f1(l1):
# do whatever is required to the l1 list
def f2(l2):
# similarly
# and similarly for f3 .. f9
...
lofl = [ l1, l2, l3, l4, l5, l6, l7, l8, l9 ]
loff = [ f1, f2, f3, f4, f5, f6, f7, f8, f9 ]
for f, l in zip( loff, lofl):
if l: # if the functions f cannot themselves safely do nothing for a falsy argument
f( l)
Надеемся, что количество требуемых функций несколько меньше девяти (в этом примере).Вы также можете легко передать функции параметр, так что функция может быть общей и сказать, какую вариантную операцию нужно выполнить в то время, когда она называется
for f, l, p in zip( loff, lofl, lofp): # or, zip( loff, lofl, list(range(9)) )
f(l, p)
, или даже передать функции произвольный набор ключевых слов.аргументы
lofargs=[ { 'foo':1, 'bar':'Monty' }, # kwargs for f1
{ 'foo':2, 'bar':'Python'},
{ 'foo':3 },
{}, # no kwargs at all for f4,
...
]
for f, l, k in zip( loff, lofl, lofargs):
f( l, **k )