[Python] Was ist Referenz, was Kopie?
Verfasst: 14.05.2014, 16:24
Moin! Ihr seid doch schlau, und ich gerade verwirrt.
Folgendes kleines Programm soll alle Zeilen aus einer Datei auslesen und anhand Kriterien zu Zeilengruppen zusammengefasst speichern. Da wird dann noch mehr draus, aber als Minimalbeispiel reicht es erstmal.
Warum wird da bei append() einmal eine Kopie untergebracht und einmal nur eine Referenz?
Folgendes kleines Programm soll alle Zeilen aus einer Datei auslesen und anhand Kriterien zu Zeilengruppen zusammengefasst speichern. Da wird dann noch mehr draus, aber als Minimalbeispiel reicht es erstmal.
Code: Alles auswählen
datei = open( "da/dort.txt", 'r', encoding='utf-8')
eintraege = []
aktEintrag = []
for aktZeile in datei:
aktEintrag.append( aktZeile) # hier wird anscheinend nicht das Objekt selbst in die Liste gepackt, sondern eine Kopie
if aktZeile.startswith( "bla"):
eintraege.append( aktEintrag) # hier aber wird nur eine Referenz in die Liste gepackt
aktEintrag.clear() # und dann leert das clear() hier auch den Eintrag in der Liste.