Composer des fonctions en python

J'ai un tableau de fonctions et je suis en train de produire une fonction qui consiste en la composition des éléments dans mon tableau.
Mon approche est la suivante:

def compose(list):
    if len(list) == 1:
        return lambda x:list[0](x)
    list.reverse()
    final=lambda x:x
    for f in list:
        final=lambda x:f(final(x))
    return final

Cette méthode ne semble être au travail, de l'aide sera appréciée.

(Je suis en inversant la liste parce que c'est l'ordre de la composition, je veux les fonctions de l'être)

source d'informationauteur Starless