반응형
[파이썬 기초]
리스트 생성 시 주의할 점 (리스트 참조)
리스트를 참조하여 생성할 때 주의할 사항이 있습니다. 이해를 위해 예를 하나 들겠습니다.
리스트 A를 정의하고, A를 참조하여 B를 만들겠습니다.
>>> A=[1,2,3]
>>> B=A
>>> B
[1, 2, 3]
만약 A를 통채로 바꾸면 B가 어떻게 될까요?
>>> A=[10,20]
>>> B
[1, 2, 3]
B는 처음에 참조한 값에서 바뀌지 않습니다. 그렇다면 한번 참조한 뒤에는 A의 변화가 B에 영향을 미치지 않는걸까요?
다시 A를 정의하고, A를 참조하여 B를 만들어봅시다.
>>> A=[1,2,3]
>>> B=A
>>> B
[1, 2, 3]
이번에는 A의 첫번째 원소만 바뀌봅시다.
>>> A[0]=100
>>> B
[100, 2, 3]
B가 바뀌었습니다.
이를 통해 알 수 있는 것은, 참조당한 리스트 A가 재정의 될 경우 참조한 B는 처음에 참조한 값을 유지하고, 참조당한 리스트 A의 일부가 바뀔 경우에는 참조한 B도 바뀐다는 사실입니다. 어떤 참조하여 리스트를 정의할 때 이 점을 유의해야 합니다. 요약하면 아래와 같습니다.
B가 A 참조 -> A 전체 변경 -> B에 영향 없음
B가 A 참조 -> A 일부 변경 -> B도 변경됨
반응형
'5-1. 파이썬 제공 기본 자료구조 > 리스트' 카테고리의 다른 글
리스트 인덱싱과 슬라이싱 음수로 하는법 (0) | 2021.05.20 |
---|---|
[파이썬 기초] 리스트 생성 시 값만 참조하는 방법 (0) | 2020.11.10 |
[파이썬기초] range 함수로 리스트 정의하기 (등차수열 쉽게 정의하기) (0) | 2020.11.03 |
[파이썬기초] 리스트 길이를 구하는 법 (len) (0) | 2020.11.02 |
[파이썬기초] 리스트 특정 원소의 개수를 구하는 방법 (count) (0) | 2020.11.02 |
댓글