Während ich Python studierte, war ich eine Stunde lang süchtig nach der Notation der Listeneinschlüsse. Ich denke, das liegt daran, dass ich dachte, Python-Funktionen wurden als Referenz übergeben. (Obwohl ich möglicherweise "Pass by Reference" missverstanden habe)
Wenn Sie die Ausführungsergebnisse vergleichen, können Sie sicher sehen, was passiert ist.
Ich habe die Eröffnungsfunktion "findDiff ()" erstellt, um herauszufinden, was hinzugefügt und was entfernt wurde. Aber als ich von der Funktion zurückkam, verschwanden die Elemente der Liste (sahen aus wie).
def findDiff(oldList, newList, adds, dels):
adds = [x for x in newList if oldList.count(x) < 1]
dels = [x for x in oldList if newList.count(x) < 1]
oldList = [1,2,3,5,6,7,8,9]
newList = [1,2,4,5,6,7,8,10]
adds = []
dels = []
print(adds)
print(dels)
findDiff(oldList, newList, adds, dels)
print(adds)
print(dels)
#>>> []
#>>> []
#>>> []
#>>> []
Nur die Funktion "findDiff ()" am Anfang wird geändert.
def findDiff(oldList, newList, adds, dels):
for x in newList:
if oldList.count(x) < 1:
adds.append(x)
for x in oldList:
if newList.count(x) < 1:
dels.append(x)
oldList = [1,2,3,5,6,7,8,9]
newList = [1,2,4,5,6,7,8,10]
adds = []
dels = []
print(adds)
print(dels)
findDiff(oldList, newList, adds, dels)
print(adds)
print(dels)
#>>> []
#>>> []
#>>> [4, 10]
#>>> [3, 9]
Als ich nach dem Schreiben des Artikels nachgeschlagen habe, hatte ich bereits die Weisheit meines Vorgängers. .. ..
Recommended Posts