스터디 그룹/ProjectH4C

ProjectH4C 1개월 2주차 과제 (UNIT 23)

 

📖 UNIT 23. 이차원 배열

📒2차원 리스트를 만들고 요소에 접근하기

먼저 2차원 리스트를 만들어보자. 2차원 리스트는 요소에 리스트가 또 들어간 형태를 띈다.

a = [[1,1] [2,2] [3,3] [4,4]]
a = [[값1, 값2], [값3, 값4]]

이런 형태를 띈다. 가로 세로 모두 인덱스는 0부터 시작된다. c언어와는 다르게 리스트가 동적으로 선언되기에 톱니바퀴식으로 리스트를 만들 수도 있다. 튜플도 마찬가지이다. 튜플은 하지만 값을 추가시킬 수는 없다.

a = ([1,1], [2,2], [3,3])

요런식으롴 코딩이 되어있다면 튜플 내의 요소를 추가시키는 것은 불가능하더라도, 리스트내의 요소는 변경할 수 있다.

 

이쁘게 출력하고 싶다면 pprint 모듈을 공부해보자.

 

📒반복문으로 요소를 모두 출력하기

기본적인 방법을 보자.

a = [[1, 1], [2, 2], [3, 3]]
for x, y in a:
	print(x, y)

이렇게 해주면 모든 요소들을 줄을 나누어 출력시킬 수 있다.

 

📒2차원 리스트 정렬하기

sorted로 2차원 리스트를 정렬해보자. 

students = [
    ['john', 'C', 19],
    ['maria', 'A', 25],
    ['andrew', 'B', 7]
]
 
print(sorted(students, key=lambda student: student[1]))
print(sorted(students, key=lambda student: student[2]))

위의 예시는 코딩도장의 예시를 거의 그대로 가져온 것이다.

우선 람다 함수로 정렬을 하되, 뒤에 나오는 student: student[1], [2]가 각각 어느 값을 기준으로 정렬할 지에 대해 알려주는 부분이다.

 

📒2차원 리스트 복사하기

1차원 리스트의 경우 copy 메서드를 사용하면 됐다.

 

2차원 이상의 리스트는 copy모듈의 copy.deecopy()를 사용하도록 하자.

 

import copy
b = copy.deecopy(a)

좀 더 자세히 말하자면 deecopy는 deep copy이다.