개발일기 [Python 파이썬]

[파이썬02] [:n] range 숫자를 차례로 담은 리스트 (오름차순,내림차순)

neullo 2024. 3. 14. 11:40

리스트와 아무 숫자(n) 주고, 주어진 n개수만큼 리스트 n개 출력

Q. 정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return 하도록 solution 함수를 완성해 주세요.

A. 만약 5라고 하면 1,2,3,4,5를 모두 담은 리스트를 출력해야한다. 그러기 위해서 리스트[:숫자] 하면 그 숫자까지 출력해주고 리스트[숫자:] 하면 그 숫자 이후부터 출력한다.

def solution(num_list, n):
    return num_list[:n]

 


example 01.

result = solution([1, 2, 3, 4, 5])


 

오름차순

 

1,2,3,4,5를 출력하는 다양한 방식에 대해 배워보자. 먼저 1과 5를 주고 1부터 5까지 출력해 줘라고 할 수도 있고, 5를 주고 리스트에 5만큼 출력해 줘라고 할 수도 있다. 

 

01. 시작(1)과 끝(5) 숫자만큼 리스트에 정렬 list(range(시작숫자, 끝숫자+1))

정수 start_num와 end_num가 주어질 때, start_num부터 end_num까지의 숫자를 차례로 담은 리스트를 return 하도록 solution 함수를 완성해 주세요

 

def solution(start_num, end_num):
    return list(range(start_num, end_num + 1))

# 예시 테스트
print(solution(1, 5))  # 예상 결과: [1, 2, 3, 4, 5]
print(solution(10, 15))  # 예상 결과: [10, 11, 12, 13, 14, 15]

 

  • range(start_num, end_num + 1)은 start_num부터 end_num까지의 연속된 정수를 나타내는 range 객체를 생성합니다. 여기서 start_num은 시작하는 정수이고, end_num + 1은 마지막 정수보다 1 큰 값을 의미합니다. 이렇게 하면 end_num까지의 정수를 포함하도록 범위를 설정할 수 있습니다.
  • 그리고 list() 함수를 사용하여 이 range 객체를 리스트로 변환합니다. 이 때, 리스트로 변환하면 range 객체에 포함된 모든 정수가 리스트의 요소로 포함됩니다.
  • 따라서 return list(range(start_num, end_num + 1))은 start_num부터 end_num까지의 숫자를 담은 리스트를 반환하는 코드입니다.

02. 리스트에 끝(5) 숫자만큼 리스트에 정렬하는 오름차순 리스트[:n]

리스트와 아무 숫자(n) 주고, 주어진 n개수만큼 리스트 n개 출력

Q. 정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return 하도록 solution 함수를 완성해 주세요.

A. 만약 5라고 하면 1,2,3,4,5를 모두 담은 리스트를 출력해야 한다. 그러기 위해서 리스트[:숫자] 하면 그 숫자까지 출력해 주고 리스트[숫자:] 하면 그 숫자 이후부터 출력한다.

def solution(num_list, n):
    return num_list[:n]

 


example 02.

정렬되어 있지 않는 숫자들[3, 1, 4, 2, 5]을  [1, 2, 3, 4, 5] 혹은  [5, 2, 4, 1, 3] 로 출력해 보자. 


02.01 일반 오름차순 [:숫자]

예를 들어, num_list가 [3, 1, 4, 2, 5]인 경우, 리스트[:n]를 하면 num_list [:5]는 있는 모양 그대로의 [3, 1, 4, 2, 5]를 반환합니다.

def solution(num_list):
    return num_list [:5]

 

02.02 일반 내림차순 [숫자:]

만약 내림차순으로 출력하고 싶다면 어떻게 할까? num_list [5:]는 [5, 2, 4, 1, 3]를 반환합니다.

def solution(num_list):
    return num_list [5:]

 

그런데 sorted를 붙이면 작은 수부터 정렬이 된다.  

 


03. 정렬 후 오름차순 sorted(num_list)[:5]

Q. 정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 return 하도록 solution 함수를 완성해 주세요.

A. 이 함수는 주어진 리스트를 sorted 함수를 사용하여 오름차순으로 정렬한 후에, 슬라이싱을 통해 처음 5개의 요소를 선택여 반환한다.

sorted(num_list)[:5]는 주어진 리스트 num_list에서 "가장 작은 5개의 수를 오름차순으로 담은 리스트를 반환"하는 것.

def solution(num_list):
    return sorted(num_list)[:5]

 이렇게 되면 [3, 1, 4, 2, 5] 이 [1, 2, 3, 4, 5]로 출력이 될 뿐 아니라 [3, 1, 5, 2, 8] 이런 식으로 구성된 리스트도 [1, 2, 3, 5, 8] 이렇게 정렬해 줄 것이다.  

 


example 03.

result = solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])


 

 

04. 정렬후 내림차순 sorted(num_list [10:], reverse=True)

만약 10을 모두 출력하고 싶다면? 리스트를 그대로 반환하는 대신에 역순으로 정렬하여 반환하면 된다. 가장 작은 10개의 수를 오름차순으로 담은 리스트를 반환

def solution(num_list):
    return sorted(num_list[:10], reverse=True)

# 예시 테스트
result = solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(', '.join(map(str, result)))  # 출력: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

 

sorted() 함수를 사용하지 않으면 원본 리스트의 순서를 고려하지 않고 처음 n개의 원소를 선택할 뿐이다.

 

05. 정렬후 거꾸로 출력 reverse=True

5 이하로 큰 숫자부터 출력하려면 num_list[:5] 

num_list [:5]는 주어진 리스트 num_list에서 "가장 작은 5개의 수를 오름차순으로 담은 리스트를 반환"하는 것.

그대로 써주고 reverse 거꾸로 해주면 된다. 

def solution(num_list):
    return sorted(num_list[:5], reverse=True)

# 예시 테스트
result = solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(', '.join(map(str, result)))  # 출력: 5, 4, 3, 2, 1

sorted(num_list [5:], reverse=True)

만약 10 이하로 큰 숫자부터 출력하려면 num_list [5:] num_list [5:]는 리스트에서 인덱스 5 이후의 요소를 반환하는 것.

따라서 num_list [5:]는 리스트에서 인덱스 5 이후의 요소를 반환하는 것 출력은 6,7,8,9,10. 

def solution(num_list):
    return num_list [5:]

 

넣어주고 sorted 해서 작은 순에서 큰 순으로 정렬시키고, 리버스 시켜서 거꾸로 출력하면 된다.

def solution(num_list):
    return sorted(num_list[5:], reverse=True)

 


 

 
 

[파이썬 01] [:n] 오름차순 내림차순 정렬 sorted 반대로 reverse

 

[파이썬] 오름차순 내림차순 정렬 sorted 작은수 반환 reverse

뒤에서 5등까지 정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요. def solution(num_list): return sort

neulo.tistory.com