변수가 연동되나요?
안녕하세요 선생님
항상 강의 잘 듣고 있습니다.
a변수를 정의하고 나서
b=a로 b변수를 정의했는데,
b변수를 바꾸니 b변수만 변하는게 아니라 a변수까지 변합니다.
왜 b변수와 a변수가 독립적인게 아니라 서로 연결되어있을까요?
그리고, 연결되지 않게 b변수를 정의하려면 어떻게 해야 할까요?
이게 제 코드입니다.
코드
a = [1, 2, 3]
b = a
b.pop(0)
print(a)출력 결과
[2, 3]
왜 b만 바꿔도 a까지 바뀌는건가요..?
감사합니다.
답변 1
0
안녕하세요^^
b = a 를 하면 a리스트의 주소가 b에 전달되는 얕은 복사입니다. 즉 b도 a가 가르키고 있는 메모리 공간을 같이 가르키므로 b로 접근하나, a로 접근하나 메모리의 같은 공간을 접근하는 것입니다.
아래와 같이 하면 깊은 복사를 하게 됩니다. 얕은복사와 깊은 복사를 구글링으로 공부해보세요.
a = [1, 2, 3]
b = a.copy() #깊은복사
b.pop(0)
print(a)
기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.
1
79
2
스택에서 ')'을 만나는 경우
0
81
3
문제가 어디있나요?
0
67
2
변수 or 함수명
0
62
1
침몰하는 타이타닉 문제 질문입니다
0
60
1
AA.py 책점 에러
0
60
1
오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.
0
112
2
5.동전분배하기 문제 밑에코드도 정답이될까요?
0
110
1
아나그램 비교 코드
0
116
2
AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.
0
161
2
문제 링크가있나여?
0
147
2
채점기 Time Limit Exceeded 오류 문의
1
166
2
동적계획법은 사용하는 문제
0
126
2
제 코드 좀 봐주세요
0
148
1
예외가 존재할 가능성?
0
97
1
3번이 안풀립니다
0
95
0
5번 틀림
0
115
0
오류원인?
0
99
0
리스트 선언
0
108
1
침몰하는 타이타닉(그리디) 문제 질문
0
111
1
알고리즘
0
70
1
코딩테스트
0
93
1
DFS 순서 질문드립니다.
0
129
2
left, right를 사용한 풀이법에 대한 질문입니다
0
91
1





