2017-02-27 1 views
1

J'ai besoin d'aide pour mon affectation sur les ensembles de fonctions. Je suis supposé créer une méthode qui va prendre un ensemble de fonctions et retourner comme un ensemble de fonctions inverses.Inverse une fonction définie en Python

Un ensemble de fonctions:

f = [[1,4],[2,5],[3,6] 

doit retourner:

fInv = [[4,1],[5,2],[6,3]] 

Voici mon code:

def inverse(f): 
    fInv = [] 
    for i in range(len(f)): 
    count = len(f[0]) 
    for j in range(len(f[0])): 
     fInv[i][j] = f[i][count] 
     count-=1 
    return fInv 
    return None 

f = [[1,4],[2,5],[3,6]] 
print(inverse(f)) 

Lors de l'exécution, il indique:

Traceback (most recent call last): 
File "python", line 11, in <module> 
File "python", line 5, in inverse 
IndexError: list index out of range 

Je suis encore novice dans le codage avec python, alors veuillez comprendre que le problème peut être une simple erreur de logique.

+0

'count = len (f [0]) '. Tu veux dire 'len (f [0]) - 1'? – Jean

+0

Merci de m'avoir informé à ce sujet. Je comprends pourquoi. –

Répondre

1

Essayez la méthode list.reverse():

Inverser les éléments de la liste, en place.

f = [[1,4],[2,5],[3,6]] 
for i in f: 
    i.reverse() 

print f 

Sortie:

[[4, 1], [5, 2], [6, 3]] 
+0

Merci pour le conseil. –

0

La solution la plus simple sera d'utiliser une compréhension de la liste qui décompresse chaque paire puis reconditionne en l'ordre inverse:

>>> f = [[1,4],[2,5],[3,6]] 
>>> [[b, a] for [a, b] in f] 
[[4, 1], [5, 2], [6, 3]]