나중에 내가 보려고 적는 기초 문법 정리
sort와 sorted함수의 차이점
sort(): 이 메소드는 리스트를 정렬된 상태로 변경.
sorted(): 기존의 리스트를 변경하는 것이 아니라 정렬된 새로운 리스트를 반환한다.
+sort 정렬의 기본값은 오름차순
+sorted는 새로운 배열을 만들었다는 점 빼고 모두 sort와 동일. 따라서 뒤에서는 sorted로만 예시를 들었지만, sort로도 동일하게 사용 가능
<sort정렬>
a = [4,5,1,2,8]
a.sort()
print(a)
#출력값 = [1, 2, 4, 5, 8]
리스트 a를 숫자 순서대로 정렬해서 반환
<sort정렬을 이용한 역순(내림차순)으로 정렬>
a = [4,5,1,2,8]
a.sort(reverse = True)
print(a)
#출력값 = [8, 5, 4, 2, 1]
reverse라는 파라미터를 사용하면, 역순으로 정렬 가능. (= 내림차순으로 정렬 가능)
<sorted정렬>
a = [4,5,1,2,8]
b = sorted(a)
print(b)
#출력값 = [1, 2, 4, 5, 8]
a 리스트를 변경하는 것이 아니라 정렬된 새로운 리스트를 b를 반환
출력값은 sort와 같이 순서대로 정렬
<sorted정렬(한글)>
a = ['거울', '초콜릿', '향수', '쿠션', '오렌지', '다람쥐']
b = sorted(a)
print(b)
#출력값 = ['거울', '다람쥐', '오렌지', '초콜릿', '쿠션', '향수']
한글 순서대로 정렬
<sorted정렬(영어)>
a = ['hello', 'hi', 'goodbye' ,'nice', 'to','meet', 'you' ]
b= sorted(a)
print(b)
#출력값 = ['goodbye', 'hello', 'hi', 'meet', 'nice', 'to', 'you']
알파벳 순서대로 정렬
<문자 길이 순으로 정렬>
a = ['hello', 'hi', 'goodbye' ,'nice', 'to','meet', 'you' ]
b= sorted(a, key = len)
print(b)
#출력값 = ['hi', 'to', 'you', 'nice', 'meet', 'hello', 'goodbye'
key 매개변수에 len을 넣어서, 길이 순으로 정렬
<2차원 리스트일 때, sorted 정렬>
=> 점이 두개라면 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬
방법1
a = [[1, 2], [0, 1], [5, 1], [5, 2], [3, 0],[4,6]]
b = sorted(a)
print(b)
#출력값 = [[0, 1], [1, 2], [3, 0], [4, 6], [5, 1], [5, 2]]
방법2
a = [[1, 2], [0, 1], [5, 1], [5, 2], [3, 0],[4,6]]
b = sorted(a, key = lambda x : x[0])
print(b)
#출력값 = [[0, 1], [1, 2], [3, 0], [4, 6], [5, 1], [5, 2]]
=> 점이 두개라면 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬
a = [[1, 2], [0, 1], [5, 1], [5, 2], [3, 0],[4,6]]
b = sorted(a, key = lambda x : x[1])
print(b)
#출력값 = [[3, 0], [0, 1], [5, 1], [1, 2], [5, 2], [4, 6]]
<문자 + 숫자 정렬 (튜플 사용)>
=> 앞의 문자를 알파벳 순으로 정렬. 만약 같다면, 숫자순으로 정렬
a = [('hello', 3),
('hello', 0),
('apple', 4),
('python', 1),
('mouse', 1)]
b = sorted(a, key = lambda x : (x[0], x[1]))
print(b)
#출력값 = [('apple', 4), ('hello', 0), ('hello', 3), ('mouse', 1), ('python', 1)]
=> 뒤의 숫자를 숫자 순으로 정렬. 만약 같다면, 문자의 알파벳 순으로 정렬.
a = [('hello', 3),
('hello', 0),
('apple', 4),
('python', 1),
('mouse', 1)]
b = sorted(a, key = lambda x : (x[1], x[0]))
print(b)
#출력값 = [('hello', 0), ('mouse', 1), ('python', 1), ('hello', 3), ('apple', 4)
댓글