π λμ μ°μ° (Assignment)
λμ μ°μ°μ κ°μ²΄ 볡μ¬κ° μλλ€.
λ°λΌμ μ§κΈλΆν° μ€λͺ ν λμ κ³Ό 볡μ¬λ μ°κ΄λ κ²μ΄ μλ λ³κ°μ΄λ€.
id() ν¨μλ λ³μμ μ£Όμ κ°μ λ°ννλ€.
λμ μ°μ°μ μ£Όμ κ°μ 볡μ¬νμ¬ λμ νλ κ²μ΄κΈ° λλ¬Έμ
bμ μ£Όμλ aμ μ£Όμμ κ°μ κ²μ νμΈν μ μλ€.
μ΄ν a κ°μ λ³κ²½ν λ€μ bμ κ°λ λ³ννλμ§ νμΈν΄λ³Έλ€.
aμ 1μ λνμλ€. aμ bλ μ£Όμ κ°μ΄ κ°μμμ§λ§ b κ°μ λ³νλμ§ μμκ³ , aμ μ£Όμκ° λ°λμλ€.
μ΄λ₯Ό μ΄ν΄νλ €λ©΄ iterableκ³Ό immutableμ κ°λ μ λν΄μ μμμΌ νλ€.
μ§κΈμ κ°λ¨ν κ·Έλ¦ΌμΌλ‘λ§ μ€λͺ νλ€.
int νμ μ immutable ν νμ μ΄λ€.
λ°λΌμ κ° λ³λ‘ κ°κ°μΈμ λ©λͺ¨λ¦¬ 곡κ°μ νλ κ°κ³ μλ κ²μ΄λ€.
νμ΄μ¬μμλ μ€λ³΅λ immutable κ°μ²΄λ₯Ό λ§λ€μ§ μλλ€.
μ²μμλ aμ b λͺ¨λ κ°μ λ©λͺ¨λ¦¬ 곡κ°μ κ°λ¦¬ν€κ³ μμκΈ° λλ¬Έμ κ°μ κ°(10)μ κ°μ§κ³ μμλ€.
aμ κ°μ΄ 10μμ 11λ‘ λ°λ λ, λ°λ κ°μ immutable ν νμ μ΄λ―λ‘ 10μ΄ μλ λ©λͺ¨λ¦¬ 곡κ°μ κ°λ¦¬ν€κ³ μλ€κ° 11μ΄ μλ λ©λͺ¨λ¦¬ 곡κ°μ κ°λ¦¬ν€κ² λλ κ²μ΄λ€.
λ©λͺ¨λ¦¬ 곡κ°μ κ°λ¦¬ν¨λ€λ κ²μ ν΄λΉ λ©λͺ¨λ¦¬ 곡κ°μ λ©λͺ¨λ¦¬ μ£Όμ κ°μ κ°μ§κ³ μλ€λ κ²μ΄λ€.
bλ λ¨μ aμ μ£Όμ κ°λ§μ 볡μ¬ν΄μ κ°μ Έμ¨ κ²μ΄λ―λ‘ bμ μ£Όμ κ°μ λ³κ²½λμ§ μλλ€.
κ·Έλμ bλ μ¬μ ν 10μ΄λΌλ κ°μ κ°μ§κ³ μλ€.
μ΄μ listλ₯Ό μ μΈν λ€ listμ μμ κ°μ λ³κ²½ν΄λ³Έλ€.
μμ μμ μλ λ€λ₯΄κ² A[1]λ§ λ°κΎΈμλλ° B[1]λ λ³κ²½λ κ²μ νμΈν μ μλ€.
μ΄λ listκ° iterable ν νμ μ΄κΈ° λλ¬Έμ΄λ€.
Bμ Aλ₯Ό λμ νμκΈ° λλ¬Έμ Aμ Bλ μλ‘ κ°μ λ©λͺ¨λ¦¬ 곡κ°(0x10)μ κ°λ¦¬ν€κ³ μλ€.
A[1]μ 2μμ 20μΌλ‘ λ³κ²½νλ©΄ list λ΄μ μμκ° κ°λ¦¬ν€κ³ μλ κ²μ΄ λ³κ²½λλ€.
μ¬μ ν Bλ 0x10μ κ°λ¦¬ν€κ³ μμΌλ―λ‘ B[1]μ κ°λ λ°λ κ²μ΄λ€.
π μμ λ³΅μ¬ (Shallow copy)
μμ 볡μ¬λ μλ‘μ΄ μΈμ€ν΄μ€λ₯Ό λ§λ€κ³ , μΈμ€ν΄μ€μ κ°λ§ 볡μ¬νλ€.
listλ₯Ό μλ‘ λ€μ΄ μμ 볡μ¬λ₯Ό νλ λ°©λ²μ μ΄ 4κ°μ§κ° μλ€.
copy() ν¨μ
y1μ xλ₯Ό λμ ν κ²μ΄κ³ , y2λ xλ₯Ό μμ 볡μ¬ν κ²μ΄λ€.
listμ == μ°μ°μλ list λ΄ μμ κ°λ€μ΄ κ°μμ§ νμΈνλ κ²μ΄λ―λ‘ λͺ¨λ Trueλ₯Ό λ°ννλ€.
κ·Έλ¬λ μ£Όμ κ°μ μ΄ν΄λ³΄λ©΄ xμ y1λ§ κ°μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°κ³ μκ³ ,
y2λ μμ 볡μ¬λ₯Ό νμΌλ―λ‘ λ€λ₯Έ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°μ§λ€.
λμΌ κ°μ²΄μΈμ§ λΉκ΅νλ κ²μ is μ°μ°μλ₯Ό μ¬μ©νλ©΄ λλ€.
is μ°μ°μλ₯Ό μ¬μ©νλ©΄ λ΄λΆμ μΌλ‘ μΈμ€ν΄μ€ μ£Όμλ₯Ό 체ν¬νλ€.
κ·Έλμ μ£Όμκ° κ°μ xμ y1μ is μ°μ°νμμ λλ§ Trueμ΄κ³ λλ¨Έμ§ μ°μ°μ FalseμΈ κ²μ΄λ€.
In [76]μμ μλ 20μ΄λ x[1]μ κ°μ 200μΌλ‘ λ³κ²½νλ€.
y1μ xλ₯Ό λμ ν΄ λ§λ κ²μ΄λ―λ‘ xκ° κ°λ¦¬ν€λ λ©λͺ¨λ¦¬ 곡κ°μ λκ°μ΄ κ°λ¦¬ν€κ³ μλ€.
λ°λΌμ y1[1]μ κ°λ λ³νλ€.
κ·Έλ¬λ y2λ μμ 볡μ¬λ₯Ό νμμΌλ―λ‘ xκ° κ°λ¦¬ν€λ λ©λͺ¨λ¦¬ 곡κ°κ³Όλ λ€λ₯Έ λ©λͺ¨λ¦¬ 곡κ°μ κ°λ¦¬ν€κ³ μλ€(== λ€λ₯Έ κ°μ²΄μ΄λ€).
κ·Έλμ y2[1]μ κ°μ λ³νμ§ μμ κ²μ΄λ€.
κ°λ¨νκ² λ©λͺ¨λ¦¬ ꡬ쑰λ₯Ό μ΄ν΄λ³΄λ©΄ μ΄λ λ€.
Xκ° κ°λ¦¬ν€λ 0x10 listλ₯Ό κ·Έλλ‘ λ³΅μ¬νμ¬ Y2μ μ μ₯νλ€.
λ°λΌμ listκ° μλ‘ μμ±λμ΄ Y2κ° κ°λ¦¬ν€λ listμ μ£Όμ κ°μ 0x20μΌλ‘, λ€λ₯Έ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λμ΄ μλ€.
κ·Έλ¬λ 0x20 list μ μμλ€μ΄ κ°λ¦¬ν€λ κ²μ 0x10 listμ μμλ€μ΄ κ°λ¦¬ν€λ κ²κ³Ό κ°μ κ±Έ κ°λ¦¬ν€κ³ μλ€.
λ²μ μ§μ [:]
μ¬λΌμ΄μ± μμ²΄κ° μλ‘μ΄ μ¬λ³Έμ λ§λλ κ²μ΄κΈ° λλ¬Έμ μ¬λΌμ΄μ±μΌλ‘ λ§λ€μ΄μ§ κ²μ μμ 볡μ¬λ₯Ό ν κ²μ΄λ€.
: μ λ€λ‘ μ«μκ° μλ κ²½μ° μ 체λ₯Ό 볡μ¬νλ€λ μλ―Έμ΄λ€.
y2λ xλ₯Ό μ¬λΌμ΄μ±νμ¬ μμ 볡μ¬λ₯Ό ν κ²μ΄λ―λ‘ μ£Όμ λΉκ΅λ₯Ό νμ λ Falseκ° λ°νλλ€.
list()
μΈ λ²μ§Έ λ°©λ²μΌλ‘λ list() ν¨μλ₯Ό μ¬μ©νλ κ²μ΄λ€.
copy.copy()
νμ΄μ¬μμλ copy λͺ¨λμ΄ μ‘΄μ¬νλ€.
ν΄λΉ λͺ¨λμ μ¬μ©ν΄μ μμ 볡μ¬λ₯Ό ν μλ μλ€.
μμ 볡μ¬μ νκ³
list xλ₯Ό λ§λ€κ³ xλ₯Ό μμ 볡μ¬ν yλ μμ±νλ€.
xμ y λ΄ μμ κ°μ κ°μ§λ§ μμ 볡μ¬λ₯Ό νμΌλ―λ‘ λ listμ μ£Όμ κ°μ λ€λ₯΄λ€.
μ΄ν x[0]μ κ°μ λ³κ²½ν΄λ³Έλ€.
x[0]μ λ³κ²½νμ΄λ μμ 볡μ¬λ₯Ό νμΌλ―λ‘ yμλ μλ¬΄λ° μν₯μ΄ μλ€.
λ©λͺ¨λ¦¬ ꡬ쑰λ μλμ κ°λ€.
λ§μ½ y[-1][-1] κ°μ λ°κΎΈλ©΄ μ΄λ»κ² λ κΉ
xλ λ°κΎΈμ§ μμμμλ λΆκ΅¬νκ³ x[-1][-1] κ°λ Fλ‘ λ°λμ΄μλ€.
μμ κ·Έλ¦Ό x[2] 0x300 listμ y[2] 0x300 listλ κ°μ listμ΄λ€.
μμ 볡μ¬λ₯Ό νκΈ° λλ¬Έμ x, yκ° κ°μ 0x300 listλ₯Ό κ°λ¦¬ν€κ² λλ κ²μ΄λ€.
μ΄ μνμμ y[-1][-1] κ°μ λ³κ²½νκ² λλ©΄ λ©λͺ¨λ¦¬ κ΅¬μ‘°κ° μ΄λ κ² λ³κ²½λλ€.
κ²°κ΅ x[2] 0x300 listκ° κ°λ¦¬ν€λ κ°λ λ°λκ² λλ€.
λ§μ½ y[0] κ°μ λ°κΎΈμλ€λ©΄ x[0]μ μλ¬΄λ° μν₯λ λ―ΈμΉμ§ μμκ² μ§λ§
yμ list λ΄ κ°μ λ°κΎΈμκΈ° λλ¬Έμ xμλ μν₯μ΄ κ°κ² λλ€.
μ΄κ² λ°λ‘ μμ 볡μ¬μ νκ³λΌλ κ²μ΄λ€.
π κΉμ λ³΅μ¬ (Deep copy)
κΉμ 볡μ¬λ₯Ό νλ λ°©λ²μ μκΉ μμ 볡μ¬μμ μ¬μ©νλ copy λͺ¨λμ μ¬μ©νλ κ²μ΄λ€.
yλ xλ₯Ό κΉμ λ³΅μ¬ νμ¬ λ§λ€μλ€.
κ·Έλμ xμ y λ΄ μμ κ°λ€μ κ°μ§λ§, xμ yμ μ£Όμλ λ€λ₯΄λ€.
λν μμ μ μμ 볡μ¬μμλ x[2]μ y[2] listκ° κ°μ listλ₯Ό μ°Έμ‘°νκ³ μμμ§λ§
μ΄λ² κΉμ 볡μ¬μμλ λ listμ μ£Όμ κ°λ λ€λ₯΄λ€λ κ²μ μ μ μλ€.
μ΄ μνμμ x[0]μ y[-1][-1] κ°μ λ³κ²½ν΄λ³Έλ€.
λΉμ°νκ²λ x[0]μ λ³κ²½ν΄λ y[0]μλ μν₯μ λ―ΈμΉμ§ μλλ€.
λν μμ 볡μ¬μ λ¬λ¦¬ y[-1][-1] κ°μ λ°κΎΈμ΄λ x[-1][-1] κ°μ κ·Έλλ‘μ΄λ€.
μμ μ μ΄ν΄λ΄€λ―μ΄ x[2]μ y[2]κ° κ°μ listκ° μλ, μλ‘ λ€λ₯Έ list λ©λͺ¨λ¦¬ 곡κ°μ κ°λ¦¬ν€κ³ μκΈ° λλ¬Έμ΄λ€.
λ©λͺ¨λ¦¬ ꡬ쑰λ μλμ κ°λ€.
μ¬μ μ§μμ΄ λ³λ‘ μλ μνμμ λ°λ‘ λμ κ³Ό μμ 볡μ¬, κΉμ 볡μ¬λ₯Ό μ΄ν΄νκΈ°μλ λ¬΄λ¦¬κ° μλ€.
λ©λͺ¨λ¦¬ ꡬ쑰μ μ΅μν΄μ§κ³ , iterableκ³Ό immutableμ μ΄ν΄νλ κ² μ€μνλ€.