본문 바로가기

알고리즘/Python 기초

리스트 자료형 - 인덱싱/슬라이싱/sort/sorted

1. 리스트도 문자열처럼 인덱싱슬라이싱 적용이 가능하다.

리스트 슬라이싱 원리

Q. 1, 2, 3까지 자르시오

A. a[:3]

 

✏️  a[0]은 0번째 숫자 '1'을 가리키지만 슬라이싱은 a[:1]이다. 원리 그림 꼭 기억하기

 

 

2. 마지막 요소 값[-1] 임을 기억하자.

a = [ 1, 2, 3, [ 'a', 'b', 'c']]

Q. 'b' 값을 꺼내시오

A. a[-1][1]

 

✏️ a[3][1]이라고 생각했는데(틀린 건 아님) [-1]이 맨 뒤 요솟값을 가리킨다는 걸 자꾸 까먹는다. 기억하자!

 

3. '문자' + 숫자 = 불가능

TypeError: unsupported operand type(s) for +: 'int' and 'str'

✏️ 기존의 자바스크립트에는 '문자' + 숫자 = '문자열'로 변환되어 나와서 아무 생각 없이 더해줬었는데 그러면 절대 안 됨!

✏️  더하고 싶다면 숫자를 문자로 변환해 주어야 됨 ==> str(3) + '육구' / '3' + '육구'

 

4. sort vs sorted

리스트명.sort()

: 리스트 원본을 정렬함 / 원본 자체가 바뀌어있음 / 반환값 없음

sorted(리스트명)

: 리스트 원본은 그대로임 / 정렬된 값을 반환함


문제로 풀어보기

문제 ) 프로그래머스 - 뒤에서 5등까지

Q. 정수로 이루어진 리스트 num_list 주어집니다

num_list에서 가장 작은 5개의 오름차순으로 담은 리스트를 return 하도록 solution 함수를 완성해 주세요.

 

num_list = [12, 4, 15, 46, 38, 1, 14]

result = [1, 4, 12, 14, 15]

 

def solution(num_list):
    answer = []
    answer = sorted(num_list)[:5]

    return answer

✏️ sorted(리스트명) 사용해서 오름차순 만들기

✏️ 인덱스 num_list[0] ~ num_list[4]까지 슬라이싱하기