본문 바로가기
Python 코딩도장

파이썬 코딩도장 Unit 22 정리(3) - 리스트(튜플)의 최대/최소값, 합계

by chanfficial 2022. 1. 20.

4. 리스트의 가장 작은 수, 가장 큰 수, 합계 구하기

 

4-1. 가장 작은 수와 가장 큰 수 구하기

  • 먼저 리스트 a의 첫 번째 요소 a[0]을 변수 smallest에 저장한 다음 for로 리스트의 요소를 모두 반복하며 i 가 smallest보다 작으면 smallest에 i 를 할당한다.
    >>> a = [38, 21, 53, 62, 19]
    >>> smallest = a[0]
    >>> for i in a:
    ...     if i < smallest:
    ...         smallest = i
    ...
    >>> smallest
    19
    - 즉, 숫자를 계속 비교하여 숫자가 작으면 smallest를 바꾸는 방식이다.
  • 가장 큰 수를 구할 때는 부등호를 반대로 바꾸면 된다.
    >>> a = [38, 21, 53, 62, 19]
    >>> largest = a[0]
    >>> for i in a:
    ...     if i > largest:
    ...         largest = i
    ...
    >>> largest
    62​
    - 그렇지만 하나씩 비교해서 가장 큰 수와 가장 작은 수를 구하기에는 번거롭다고 느껴진다.
  • 앞에서 배운 리스트를 정렬하는 메서드인 sort를 이용하면 리스트를 작은 순서대로 정렬(오름차순)하여 첫 번째 요소가 가장 작은 수임을 알 수 있다.
  • 반대로 큰 순서대로 정렬(내림차순)하면 첫 번째 요소가 가장 큰 수가 된다.
    >>> a = [38, 21, 53, 62, 19]
    >>> a.sort()
    >>> a[0]
    19
    >>> a.sort(reverse=True) # 리스트를 반대로 뒤집음(내림차순 정렬)
    >>> a[0]
    62​
  • 파이썬에서 제공하는 min, max 함수를 사용하면 더 간단하게 최대값, 최소값을 구할 수 있다.
    >>> a = [38, 21, 53, 62, 19]
    >>> min(a)
    19
    >>> max(a)
    62​
    - min은 리스트에서 가장 작은 값을 구하고, max는 가장 큰 값을 구한다.

 

4-2. 리스트에서 요소의 합계 구하기

  • 요소의 합계를 구할 때도 반복문을 사용하면 된다.
  • 변수 x에 0을 할당하고, for 반복문으로 리스트의 요소를 모두 반복하면서 요소를 x에 계속 더해주면 된다.
    >>> a = [10, 10, 10, 10, 10]
    >>> x = 0
    >>> for i in a:
    ...     x += i
    ...
    >>> x
    50​
  • 이때 x에는 반드시 0을 할당해야 한다. 그렇지 않으면 없는 변수에 값을 더하게 되어 에러가 발생하고, 0부터 시작해서 숫자를 더해야 제대로 된 합계를 구할 수 있다.
  • 합계를 구하는 sum 함수를 사용하면 더 간단하게 요소의 합을 구할 수 있다.
    >>> a = [10, 10, 10, 10, 10]
    >>> sum(a)
    50​
    - 이렇게 sum에 리스트를 넣어서 간단하게 요소의 합계를 구할 수 있다.

※ 여기서 설명한 min, max, sum에는 리스트뿐만 아니라 모든 반복 가능한 객체(iterable)를 넣을 수 있다.

  • 반복 가능한 객체 : 리스트, 튜플, 딕셔너리, 세트, range 등