매일공부

[AI 기초 다지기] 파이썬 리스트 - 패킹, 언패킹, 행렬, 복사 본문

Programming/Python

[AI 기초 다지기] 파이썬 리스트 - 패킹, 언패킹, 행렬, 복사

aram 2022. 7. 23. 14:59

파이썬 리스트; append() sort() split() > https://dailystudy.tistory.com/29 


- 패킹: 한 변수에 여러 개의 데이터를 넣는 것

- 언패킹 : 한 변수의 데이터를 각각의 변수로 반환

>>> t = [1, 2, 3]  ## 패킹
>>> a, b, c = t    # 언패킹
>>> print(t, a, b, c)
[1, 2, 3] 1 2 3

 

- 1차원 리스트 복사

: 주소값이 동일한 얕은 복사  ## 하나를 수정하면 다 같이 수정됨

color3 = color2 #얕은복사, 주소값이 동일함
print(color2, id(color2))
print(color3, id(color3))

#['orange', 'black', 'white'] 1612475689984
#['orange', 'black', 'white'] 1612475689984

: 주소값이 다른 깊은 복사

new_color = color1[:] #깊은 복사, 주소값이 다름
print(id(color1), id(new_color)) #1612504179456 1612504346752
color1.append('orange')
print(color1) #['yellow', 'red', 'blue', 'green', 'white', 'black', 'purple', 'orange']
print(new_color) #['yellow', 'red', 'blue', 'green', 'white', 'black', 'purple']

 

- 행렬 Matrix

: 리스트 안에 리스트를 만들어 행렬 생성(이차원 리스트)

outer 반복문 > 행 수 
inter 반복문 > 열 수
for 변수1(1차원list) in 2차원 list 객체 :   #2차원list에 저장된 1차원list의 개수만큼반복
    for 변수2(데이터) in 변수1(1차원list) :
        변수2(데이터)를 처리하는 코드
>>> kor_score = [49,79,20,100,80] 
>>> math_score = [43,59,85,30, 90] 
>>> eng_score = [49,79,48,60,100] 
>>> midterm_score = [kor_score, math_score, eng_score] 
>>> print(midterm_score)
[[49, 79, 20, 100, 80], [43, 59, 85, 30, 90], [49, 79, 48, 60, 100]]

>>> print (midterm_score[0][2])
20

 

: 이차원 리스트 전체를 복사하면?

>>> midterm_copy = midterm_score[:]
>>> print(midterm_copy)
[[49, 79, 20, 100, 80], [43, 59, 85, 30, 90], [49, 79, 48, 60, 100]]

>>> midterm_score[1][2] = 50
>>> print(midterm_copy)
[[49, 79, 20, 100, 80], [43, 59, 50, 30, 90], [49, 79, 48, 60, 100]]

  > 이차원리스트의 경우만, [:]로 복사하면 주소값을 가져와서 Link 유지 > 수정하면 같이 수정 == 얕은 복사

: import copy 명령어를 불러와서 별도로 복사를 해야만 가능 == 깊은 복사

>>> import copy
>>> kor_score = [49,79,20,100,80] 
>>> math_score = [43,59,85,30, 90] 
>>> eng_score = [49,79,48,60,100] 
>>> midterm_score = [kor_score, math_score, eng_score] 
>>> midterm_copy = copy.deepcopy(midterm_score)

 

* 내용참고&출처 : 태그의 수업을 복습 목적으로 정리한 내용입니다.

Comments