본문 바로가기

프로그래머/Python

[널널한 교수의 고급 파이썬] 03-3 반복 가능 객체를 위한 내장함수

03-3 반복 가능 객체를 위한 내장함수

  • 반복 가능 객체는 다양한 파이썬 내장함수를 사용할 수 있다
  • min()이나 max()와 같은 함수는 반복 가능 객체를 인자로 받아 최댓값과 최솟값을 반환한다
  • 이 외에도 all(), any(), ascii(), bool(), filter(), iter()와 같은 고급 내장함수도 제공되고 있다

all() 함수

  • 반복 가능한 항목들이 모두 참일 때만, 참을 반환한다
l1 = [1, 2, 3, 4]
l2 = [0, 2, 4, 8]
l3 = [0, 0, 0, 0]
all(l1)     # True
all(l2)     # False
all(l3)     # False

any() 함수

  • 임의의 반복 가능한 항목들 중에서 참이 하나라도 있을 경우 참을 반환한다
l1 = [1, 2, 3, 4]
l2 = [0, 2, 4, 8]
l3 = [0, 0, 0, 0]
any(l1)     # True
any(l2)     # True
any(l3)     # False

bool() 함수

  • 반복 가능 객체의 값의 존재 여부를 불 값으로 변환한다
    l1 = [1, 2, 3, 4]
    l2 = [0, 2, 4, 8]
    l3 = [0, 0, 0, 0]
    bool(l1)     # True
    bool(l2)     # True
    bool(l3)     # True
    l4 = []
    bool(l4)     # False

filter() 함수

  • 반복 가능한 항목들을 하나하나 꺼내어 함수에 넣는다
  • 그 리턴 값이 참인 것만 묶어서 반환하는 함수
  • 일반적으로 람다 함수를 필터링시 사용

list() 함수

  • 내장함수로서 문자열이나 튜플을 리스트로 변환할 때 사용
char_list = list('hello')

# 집합 -> 리스트
s = {1, 2, 3, 4}
s_list = list(s)

# 튜플 -> 리스트
t_list = list((1, 2, 3, 4))

split() 메소드

  • 디폴트 구분자로 공백을 사용한다
  • 공백을 구분자로 하여 list로 만들어준다
words = 'Python은 아름다운 언어입니다.'
words_list = words.split()

time_str = '2019.02.20'
time_str.split('.')     # 구분자로 다른 문자를 사용할 수 있다

join() 메소드

  • 리스트의 항목들을 하나의 문자열로 연결할 때 사용
time_list = ['2019', '02', '21']
'.'.join(time_list)
','.join(time_list)

정리

  • 반복 가능 자료형에는 any(), all(), bool(), iter(), filter(), map() 등의 내장함수를 사용하여 필요한 연산을 할 수 있다
  • list() 함수를 사용하여 집합, 튜플, 문자열을 리스트 객체로 만들 수 있다
  • join(), split()과 같은 많은 메소드가 있다