Hier ist meine Funktion von Python:Warum Drucker aus der Funktion unterschiedlich ist
def Ggen(word):
result = []
while(len(word)!=1):
a = word.pop()
b = word
temp = (a,b)
print temp
result.append(temp)
return result
Angenommen, ich habe Daten test = ['f','c','a','m','p']
nennen.
Mein Ergebnis von print
in Funktion erzeugt wird:
('p', ['f', 'c', 'a', 'm'])
('m', ['f', 'c', 'a'])
('a', ['f', 'c'])
('c', ['f'])
Aber wenn ich Ggen(test)
laufen habe ich diese statt:
[('p', ['f']), ('m', ['f']), ('a', ['f']), ('c', ['f'])]
Was meinen Code passieren. Ist jemand, wie man das ähnliche Ergebnis von oben bekommt?
'b = Wort' ... Denken Sie nur darüber nach. Was ist "Wort"? –
Listen sind veränderbar. Sie mutieren die Liste in der Schleife. Sie drucken sie, bevor Sie sie mutieren, geben aber einen endgültigen Wert zurück, der gründlich mutiert wurde. Warum nicht Kopien der Liste in verschiedenen Phasen erstellen, wenn Sie die unmutierten Versionen von früher in der Schleife beibehalten möchten? Wie dem auch sei, Sie erstellen gerade eine ganze Reihe von Aliasen für dieselbe Liste. –
Wort ist nur eine Liste von Elementen. Mein Algorithmus löschte jedes Mal die Liste und erstellte ein (Schlüssel, Wert), wo der Schlüssel pop() ist, während der Wert die verbleibenden Daten in der Liste ist. Ich wiederhole, bis das Ergebnis wie der Druck sollte – someone