>>> a = [1, 2, 3]
>>> b = a[:] #리스트 a의 처음~끝 요소 슬라이싱
>>> a[1] = 4
>>> a
[1, 4, 3]
>>> b
[1, 2, 3] #리스트 a의 값을 바꾸더라도 리스트 b에 영향x
📖 변수란?
- 변수의 형태 : '변수 이름 = 변수에 저장할 값'
- at 파이썬, 변수 ≒ 객체
- 객체 : 자료형의 데이터(값)
다음의 a, b, c 같은 예를 '변수'라 함
>>> a = 1
>>> b = "python"
>>> c = [1, 2, 3]
[Ex] a = [1, 2, 3]
# [1, 2, 3] 값을 가지는 리스트 데이터(객체)가 자동으로 메모리에 생성됨
# 변수 a는 [1, 2, 3] 리스트가 저자오딘 메모리의 주소를 가리킴
>>> a = [1, 2, 3]
>>> id(a) #파이썬 내장 함수 id : 변수가 가리키는 객체의 주소 값을 리턴
4303029896 #변수 a가 가리키는 [1, 2, 3] 리스트의 주소 값
1. 리스트를 복사하고자 할 때
1) b 변수에 a 변수를 대입
>>> a = [1, 2, 3]
>>> b = a #b 변수에 a 변수를 대입
>>> id(a)
4303029896
>>> id(b)
4303029896 #a 주소 값 = b 주소 값
>>> a is b
True #a와 b가 가리키는 객체가 같음
>>> a[1] = 4 #리스트 a의 두 번째 요소를 값 4로 바꿈
>>> a
[1, 4, 3]
>>> b
[1, 4, 3] #b도 똑같이 바뀜
2) b 변수에 a 변수를 대입 BUT a와 다른 주소 갖게하기
① [:] 이용 : 리스트 전체를 가리키는 [:]을 사용해 복사
>>> a = [1, 2, 3]
>>> b = a[:] #리스트 a의 처음~끝 요소 슬라이싱
>>> a[1] = 4
>>> a
[1, 4, 3]
>>> b
[1, 2, 3] #리스트 a의 값을 바꾸더라도 리스트 b에 영향x
② copy 모듈 이용
=====copy 모듈 이용하기=====
>>> from copy import copy #copy 모듈에 있는 copy 함수 import
>>> a = [1, 2, 3]
>>> b = copy(a) #copy 함수 사용 #'b = copy(a)' 는 'b = a[:]'과 동일
>>> b is a
False #b와 a가 가리키는 객체는 서로 다름
=====copy 함수 사용하기=====
>>> a = [1, 2, 3]
>>> b = a.copy() #파이썬 리스트의 내장 함수 copy 사용
>>> b is a
False #copy 모듈과 동일한 결과
2. 변수를 만드는 여러 가지 방법
1) 튜플로 a, b에 값을 대입
>>> a, b = ('python', 'life')
위의 방법은 다음 예문과 완전히 동일
>>> (a, b) = 'python', 'life'
#튜플은 괄호 생략 가능
2) 리스트로 변수 생성
>>> [a, b] = ['python', 'life']
3) 여러 개의 변수에 같은 값 대입
>>> a = b = 'python'
=====이 방법을 사용, 두 변수의 값을 간단하게 변경=====
>>> a = 3
>>> b = 5
>>> a, b = b, a #a와 b의 값을 바꿈
>>> a
5
>>> b
3
출처 : ⎡Do it! 점프 투 파이썬 (박응용)⎦
'Python > 02. 파이썬의 기초, 자료형' 카테고리의 다른 글
02-7 불 자료형 (0) | 2024.06.27 |
---|---|
02-6 집합 자료형 (0) | 2024.06.27 |
02-5 딕셔너리 자료형 (0) | 2024.06.27 |
02-4 튜플 자료형 (0) | 2024.06.25 |
02-3 리스트 자료형 (0) | 2024.06.25 |