728x90

Iterable
myList = [1, 2, 3, 4, 5]
myDict = {'name': '홍길동', 'age': 28, 'gender': 'male'}
myStr = 'Hello World!'
myRange = range(10)
for item in iter(myList):
print(item, end=' / ')
print()
for item in myDict:
print(item, end=' / ')
print()
for item in myStr:
print(item, end=' / ')
print()
for item in myRange:
print(item, end=' / ')
print()

- iterable 객체 : 반복 가능한 객체
- Iterable : list, dictionary, set, str, bytes, tuple, range ....
- 반복문, range, enumerate 등에 사용할 수 있음
Iterator
myList = [1, 2, 3, 4, 5]
myDict = {'name': '홍길동', 'age': 28, 'gender': 'male'}
myStr = 'Hello World!'
myRange = range(10)
print(type(myList))
print(type(iter(myList)))
print(type(myDict))
print(type(iter(myDict)))
print(type(myStr))
print(type(iter(myStr)))
print(type(myRange))
print(type(iter(myRange)))

- iterator 객체 : 값을 차례대로 꺼낼 수 있는 객체
- iterable한 객체를 내장함수나 iterable 객체의 메소드로 생성할 수 있음
- iter()를 사용할 수 있음 (iterable 객체는 __iter__ 메소드를 가지고 있음
- __next__ 메소드를 통해 하나씩 값을 꺼낼 수 있음
map()
myList = [1, 2, 3, 4, 5]
myDict = {'name': '홍길동', 'age': 28, 'gender': 'male'}
myStr = 'Hello World!'
myRange = range(10)
def show_me_the_item(item):
return f'__{item}__'
for result in map(show_me_the_item, myList):
print(result, end=' ')
print()
for result in map(show_me_the_item, myDict):
print(result, end=' ')
print()
for result in map(show_me_the_item, myStr):
print(result, end=' ')
print()
for result in map(show_me_the_item, myRange):
print(result, end=' ')
print()

- map(function, iterable, ...)
- iterable의 모든 항목에 function을 적용하여 나온 결과를 iterator로 반환.
- 여러 iterable을 병렬로 넣어줄 수 있지만, 가장 짧은 것을 기준으로 실행됨
lambda 식 활용
myList = [1, 2, 3, 4, 5]
for result in map(lambda x : x * 2, myList):
print(result, end=' ')

- 익명함수 이용 가능
다수의 iterator
myList = [1, 2, 3, 4]
myDict = {1: 'one', 2: 'two', 3: 'three'}
myRange = range(1, 10)
def three(a, b, c):
return a + b + c
print(list(map(pow, myList, myRange)))
print(list(map(three, myList, myDict, myRange)))

- 순서대로 인자로 넣어줌
한 번에 여러 데이터 입력받기
a, b = map(int, input().split())
print(type(a))
print(a, b)
print()
a, b = map(float, input().split())
print(type(a))
print(a, b)
print()
a = [input() for _ in range(3)]
print(type(a))
print(a)
print()
a = [list(map(int, input().split())) for _ in range(3)]
print(type(a))
print(a)
print()

- 다양한 응용 가능
참고
- 파이썬 공식 문서
- 점프 투 파이썬
반응형
'Languages > Python' 카테고리의 다른 글
| [파이썬 라이브러리] functools 모듈의 reduce 메서드 (0) | 2022.06.03 |
|---|---|
| [파이썬 101] lambda (람다) (0) | 2022.06.03 |
| [파이썬 101] re 모듈 (함수, 플래그, 일치 객체) (0) | 2022.05.30 |
| [파이썬 101] 정규표현식 (0) | 2022.05.30 |
| [파이썬 101] 문자열 매칭 메소드 (in, find, rfind, index, rindex startswith, endswith) (0) | 2022.05.28 |