본문 바로가기
개발일지/Python

파이썬 얕은복사, 깊은복사 (메모리값 문제 해결)

by 개발에정착하고싶다 2022. 5. 20.
320x100
# 얕은복사와 깊은 복사

# 얕은복사란
r1 = 1
r2 = 2
r3 = r1

# 이라고 할때 r3는 r1를 얕은 복사를 한것이다.
# 때문에 r1를 변경하면 r3도 함께 변경된다.

 

 

# 메모리 값때문에 존재하는 복사
# 깊은 복사

scores = [int(input('국어 점수 입력: ')),
          int(input('영어 점수 입력: ')),
          int(input('수학 점수 입력: '))]

print(scores)

# 이게 카피본이다.
copyScores = scores.copy()
# 이렇게 되는 순간 scores = memory1, copyScores = memory2의 개념이라고 보면 된다.

for idx, score in enumerate(copyScores):
    result = score * 1.1
    copyScores[idx] = 100 if result > 100 else result

print(f'이전 평균: {round(sum(scores) / len(scores),2)}')
print(f'이후 평균: {round(sum(copyScores) / len(copyScores),2)}')
300x250