[Python기초] 14. 수열함수
range함수는 어떻게 사용하나요?
- 파이썬 내장함수
- 제어문과 연관된 유용한 함수
>>> list(range(10)) # 종료 값만 있는 경우 10은 포함 안됨
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(5, 10)) # 시작 값, 종료 값이 있는 경우
[5, 6, 7, 8, 9]
>>> list(range(10, 0, -1)) # 시작 값, 종료 값, 증가 값이 있음
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> list(range(10, 20, 2)) # 10에서 20까지 짝수만 출력
[10, 12, 14, 16, 18]
리스트 내장 방식
- 기존의 리스트 객체를 이용해 조합, 필터링 등의 추가적인 연산을 통해 새로운 리스트 객체를 생성하는 경우 ‘리스트 내장’이 매우 효율적임
<표현식> for <아이템> in <시퀀스 타입 객체> (if <조건식>)
>>> l = [1, 2, 3, 4, 5]
>>> [i ** 2 for i in l]
[1, 4, 9, 16, 25]
>>> t = ("apple", "banana", "orange")
>>> [len(i) for i in t]
[5, 6, 6]
>>> d = {100: "apple", 200: "banana", 300: "orange"}
>>> [v.upper() for v in d.values()]
['BANANA', 'ORANGE', 'APPLE']
>>> [i ** 3 for i in range(5)]
[0, 1, 8, 27, 64]
반복문 작성에 도움이 되는 함수 filter
- filter() 함수는 조건에 해당하는 함수의 이름을 넘겨주면 해당 함수를 통해 걸러내기(필터링)을 해주는 내장함수임
filter(<function> | None, <이터레이션이 가능한 자료형>)
>>> L = [10, 25, 30]
>>> IterL = filter(None, L)
>>> for i in IterL:
print("Item: {0}".format(i))
Item: 10
Item: 25
Item: 30
>>> def GetBiggerThan20(i): # filter() 함수에 첫번째 인자로 GetBiggerThan20() 함수를 넘겨주면 내부의 논리식에서 참을 리턴하는 경우만 for in 루프에서 포함되어 출력
return i > 20
>>> L = [10, 25, 30]
>>> IterL = filter(GetBiggerThan20, L)
>>> for i in IterL:
print("Item: {0}".format(i))