슬라이스(Slicing)
- 슬라이스를 사용하면 리스트, 튜플, 문자열 등의 시퀀스 데이터 타입에서 원하는 부분을 추출할 수 있습니다. 기본 형식은 'sequence[start: stop : stop]' 입니다.
- start : 슬라이스 시작 인덱스 (포함)
- stop : 슬라이스 종료 인덱스(제외)
- step : 슬라이스 간격(옵션)
# 리스트 예제
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 2번 인덱스부터 5번 인덱스까지 슬라이스
print(numbers[2:6]) # [2, 3, 4, 5]
# 처음부터 5번 인덱스까지 슬라이스
print(numbers[:6]) # [0, 1, 2, 3, 4, 5]
# 5번 인덱스부터 끝까지 슬라이스
print(numbers[5:]) # [5, 6, 7, 8, 9]
# 전체 리스트를 슬라이스
print(numbers[:]) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 스텝을 이용한 슬라이스 (2칸씩 건너뛰기)
print(numbers[::2]) # [0, 2, 4, 6, 8]
# 역순으로 슬라이스
print(numbers[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
정렬(Sorting)
sort() 메서드: 리스트 자체를 정렬합니다. 이 메서드는 리스트를 직접 수정하며, 반환값은 None입니다.
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort()
print(numbers) # [1, 1, 2, 3, 4, 5, 5, 6, 9]
# 내림차순 정렬
numbers.sort(reverse=True)
print(numbers) # [9, 6, 5, 5, 4, 3, 2, 1, 1]
sorted() 함수: 새로운 정렬된 리스트를 반환합니다. 원래 리스트는 수정되지 않습니다.
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # [1, 1, 2, 3, 4, 5, 5, 6, 9]
print(numbers) # [3, 1, 4, 1, 5, 9, 2, 6, 5]
# 내림차순 정렬
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc) # [9, 6, 5, 5, 4, 3, 2, 1, 1]
정렬 기준을 지정하기: key 매개변수를 사용하여 정렬 기준을 지정할 수 있습니다.
# 문자열 리스트를 길이를 기준으로 정렬
words = ["apple", "banana", "cherry", "date"]
words.sort(key=len)
print(words) # ['date', 'apple', 'banana', 'cherry']
# 대소문자 구분 없이 정렬
words = ["banana", "Apple", "cherry", "Date"]
words_sorted = sorted(words, key=str.lower)
print(words_sorted) # ['Apple', 'banana', 'cherry', 'Date']
K번째 수
https://school.programmers.co.kr/learn/courses/30/lessons/42748?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내가 푼 문제풀이
array = [1, 5, 2, 6, 3, 7, 4]
commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]]
def solution(array, commands):
answer = []
for x in commands:
i, j, k = x
slice_sorted_array = sorted(array[i-1 : j])
answer.append(slice_sorted_array[k-1])
return answer
print(solution(array, commands))