Sie haben eine return
Anweisung innerhalb Ihrer while, so dass die Funktion zurückkehrt, sobald sie diesen Punkt erreicht. Sie sollten Dedent Ihre Rückkehr auf das gleiche Niveau wie die während:
def transpose(matrix):
n = 0
li = []
while n < (len(matrix)):
...
return li
Sie könnten auch die while-Schleife und Zähler n
mit einer for-Schleife ersetzen, dass Iterierten auf range(len(matrix))
so können Sie sicher n
verwerfen, und dann bewegen die Initialisierung von li
außerhalb der Schleife:
def transpose(matrix):
li = []
for i in range(len(matrix)):
inner_li = []
for sets in matrix:
inner_li.append(sets[i])
li.append(inner_li)
return li
ich schlage vor, Sie das beliebte Rezept nehmen Matrizen für die Umsetzung des Code sauberer zu machen:
def transpose(matrix):
return list(zip(*matrix))
>>> transpose([[1,2,3],[4,5,6],[7,8,9]])
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
'Return' endet Funktion - Sie müssen' Return' nach 'while' Schleife verwenden. – furas
Weil Sie es so codiert haben - Sie durchlaufen die Anweisungen in der Schleife und die letzte Anweisung ist 'return'. – MattDMo
Das Ergebnis, das ich erhalte, ist nur [1, 4, 7, 2, 5, 8, 3, 6, 9]. –