Citat:
Ursprungligen postat av
Enterprise
Nej, den är inte överflödig.
Om du tar bort copy så delar bara samma referens till en lista i två variabler. Prova att ändra i listan så får du se. Utan copy så ändras listan på båda ställena.
https://www.programiz.com/python-pro...hods/list/copy
Jag är inte riktigt säker på att denna referens är giltig i senare versioner av Python. För kolla min Ipython:
Kod:
In [2]: hus1 = ['A','B','C']
In [3]: hus2 = hus1
In [4]: hus2 = hus2 + ['D','E']
In [5]: hus2
Out[5]: ['A', 'B', 'C', 'D', 'E']
In [6]: hus1
Out[6]: ['A', 'B', 'C']
Som du ser har jag tilldelat hus2 samma adressplats som hus1, men hus1 ändras inte när jag tilldelar hus2 två nya element.
Inte heller om jag vänder på ordningen:
Kod:
In [27]: hus1 = hus1 +['E','D']
In [28]: hus1
Out[28]: ['A', 'B', 'C', 'E', 'D']
In [29]: hus2
Out[29]: ['A', 'B', 'C']
Kör vi däremot med dict() får vi intressanta resultat:
Kod:
In [15]: dict1 = {'d':2, 'c':3}
In [16]: dct2 = dict1
In [18]: dct2
Out[18]: {'d': 2, 'c': 3}
In [19]: dict1
Out[19]: {'d': 2, 'c': 3}
In [21]: dict1['d']=34
In [22]: dict1
Out[22]: {'d': 34, 'c': 3}
In [23]: dct2
Out[23]: {'d': 34, 'c': 3}
Nu ser vi att dct2 ändras om jag ändrar dict1.
Bonnatorp, ovan ser du vad som händer om man inte kopierar dict() ordentligt.