Статический полиморфизм: где решение решить, какой метод выполнить, определяется во время компиляции. Метод перегрузки может быть примером этого.
Динамический полиморфизм: это решение о выборе того, какой метод выполнить, задается во время выполнения. Примером может служить метод Overriding.
Это - мое решение:
def plus(i):
return i+i
def mult(i):
return i*4
functions = [plus,mult]
result=[]
for i in ["a","b","c","d"]:
for j in functions:
result.append(j(i))
результат [16]: ['aa', 'aaaa', 'bb', 'bbbb', 'cc', 'cccc', 'dd', 'dddd']