sorted로 2차원 리스트 정렬
sorted(반복가능한객체, key=정렬함수, reverse=True 또는 False)
students = [ ['john', 'C', 19], ['maria', 'A', 25], ['andrew', 'B', 7] ]
print(sorted(students, key=lambda student: student[1])) # 안쪽 리스트의 인덱스 1을 기준으로 정렬
print(sorted(students, key=lambda student: student[2])) # 안쪽 리스트의 인덱스 2를 기준으로 정렬
실행 결과
[['maria', 'A', 25], ['andrew', 'B', 7], ['john', 'C', 19]] [['andrew', 'B', 7], ['john', 'C', 19], ['maria', 'A', 25]]
*lambda
깊은 복사이거 기말인가 그때 구현하느라 시간 다 뺏겼는데 이런 방법이...
2차원 이상의 다차원 리스트 리스트를 완전히 복사하려면 copy 메서드 대신 copy 모듈의 deepcopy 함수를 사용
>>> a = [[10, 20], [30, 40]]
>>> import copy # copy 모듈을 가져옴
>>> b = copy.deepcopy(a) # copy.deepcopy 함수를 사용하여 깊은 복사
>>> b[0][0] = 500
>>> a
[[10, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]
이제 리스트 b의 요소를 변경해도 리스트 a에는 영향을 미치지 않음
copy.deepcopy 함수는 중첩된 리스트(튜플)에 들어있는 모든 리스트(튜플)를 복사하는 깊은 복사(deep copy) 해줌
3차원 리스트 : 높이×가로×세로
- 리스트 = [[[값, 값], [값, 값]], [[값, 값], [값, 값]], [[값, 값], [값, 값]]]
- 리스트[높이인덱스][세로인덱스][가로인덱스]
- 리스트[높이인덱스][세로인덱스][가로인덱스] = 값
![](https://blog.kakaocdn.net/dn/bJG4TF/btq9PS0cfo0/G8x5aHiTjzqs9pvrO72AQ1/img.png)
걍.. 쉽게 생각하면 투디어레이가 여러 겹 있는겨 ㅇㅇ
* 2차원 리스트를 여러번 반복 -> for 루프 한번 더 돌리면 됨
지뢰찾기 알고리즘
![](https://blog.kakaocdn.net/dn/bF8xx3/btq9ReWlO5R/qgeeg9diuU2TDCE09x0O2K/img.png)
처음에 어떻게 풀었냐면... 노가다로 풀었음(첫 시도만에 풀리긴풀림ㅇㅇ)
그러면 코드가 어마어마하게 길어지더라고 귀찮기도하고
그래서 설명 참고해서 다시 풀어봤음
두번째 이중 for문 돌릴 때 범위 헷갈렸음
count 위치 설정 잘 해야되고 print 위치도 잘 생각해서 짜야됨.
**** for range로 반복하면서 *이면 건너뛰고 *가 아니면 0 넣으셈~
or if로
'Language > Python' 카테고리의 다른 글
dictionary (0) | 2021.07.24 |
---|---|
string (0) | 2021.07.20 |
List (0) | 2021.07.09 |
sequence type, baekjoon quest. (0) | 2021.07.04 |
자주 쓰는 것들 (0) | 2021.04.10 |