Ändern einer Liste innerhalb einer Funktion
Beim Arbeiten mit Listenparametern in Funktionen verweisen die an die Funktion übergebenen Referenzen auf die ursprüngliche Liste. Alle Änderungen, die innerhalb der Funktion an der Variable list_arg vorgenommen werden, sind auf ihren lokalen Bereich beschränkt und wirken sich nicht auf die ursprüngliche Liste aus.
Um dieses Problem zu umgehen und die ursprüngliche Liste zu ändern, müssen der Liste Elemente direkt zugewiesen werden anstatt die gesamte Liste einem neuen Wert zuzuweisen. Hier ist ein Beispiel:
def function1(list_arg): a = function2() # function2 returns an array of numbers list_arg[:] = list(a) list1 = [0] * 5 function1(list1) print(list1) # [1, 2, 3, 4, 5]
In diesem modifizierten Code verwenden wir die Slice-Notation list_arg[:], um die Elemente von list(a) der ursprünglichen Liste zuzuweisen, die Liste effektiv an Ort und Stelle ändern.
Es ist wichtig zu beachten, dass direkte Änderungen zwar praktisch erscheinen, aber schwer verständlich sein können und zu Verwirrung bei Entwicklern führen können, die den Code pflegen. Aus Gründen der Klarheit und Lesbarkeit werden im Allgemeinen explizite Neuzuweisungen bevorzugt.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3