
iterator(๋ฐ๋ณต์)
ํ์ด์ฌ์์ iterator(๋ฐ๋ณต์)๋ ์ํ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๋ ๊ฐ๋ ์ ๋๋ค. Iterator๋ __iter__์ __next__ ๋ฉ์๋๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ก, __iter__๋ ์๊ธฐ ์์ ์ ๋ฐํํ๊ณ , __next__๋ ๋ค์ ๊ฐ์ ๋ฐํํฉ๋๋ค. ์ด๋, ๋ ์ด์ ๋ฐํํ ๊ฐ์ด ์์ ๋ StopIteration ์์ธ๋ฅผ ๋ฐ์์์ผ ์ํ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๊ฐ๋จํ iterator๋ฅผ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค
class MyIterator:
def __init__(self, start, end):
self.start = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.start >= self.end:
raise StopIteration
else:
self.start += 1
return self.start - 1
# ์ฌ์ฉ ์์
my_iter = MyIterator(1, 5)
for num in my_iter:
print(num)
map๊ณผ filter
์ด์ map๊ณผ filter ํจ์์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
- map ํจ์:
- map ํจ์๋ iterable์ ๊ฐ ์์์ ํจ์๋ฅผ ์ ์ฉํ์ฌ ์๋ก์ด iterable์ ๋ฐํํฉ๋๋ค.
- ๊ตฌ๋ฌธ: map(function, iterable)
# ๊ฐ ์ซ์๋ฅผ ์ ๊ณฑํ๋ ์์ numbers = [1, 2, 3, 4, 5] squared = map(lambda x: x**2, numbers) print(list(squared))โ - filter ํจ์:
- filter ํจ์๋ iterable์ ์์ ์ค์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๋ง ๋จ๊ธฐ๋ ์ญํ ์ ํฉ๋๋ค.
- ๊ตฌ๋ฌธ: filter(function, iterable)
# ์ง์๋ง ๋จ๊ธฐ๋ ์์
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))
์ด๋ฌํ ํจ์๋ค์ ํ์ด์ฌ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ์ ์ง์ํ๋ฉฐ, ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์๋๋ก ๋์์ค๋๋ค. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ฐ์กฐํ๊ณ , ์ํ ๋ณ๊ฒฝ์ ํผํ๋ ค๋ ํจ๋ฌ๋ค์ ์ค ํ๋์ ๋๋ค.
'ํ๋ก๊ทธ๋๋ฐ ์ธ์ด > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Mutable๊ณผ Immutable ๊ฐ์ฒด (1) | 2024.04.29 |
|---|---|
| ํ์ด์ฌ ํจํน(packing)๊ณผ ์ธํจํน(unpacking)์ ๋ชจ๋ ๊ฒ (3) | 2023.12.17 |
| ํ์ด์ฌ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ , ๋์ ๋๋ฆฌ ์ปดํ๋ฆฌํจ์ ์ ๋ชจ๋ ๊ฒ (0) | 2023.12.12 |
| ํ์ด์ฌ ์คํ์ ๋ฉ์๋์ ๋ชจ๋ ๊ฒ(__init__, __str__, __len__ ๋ฑ) (0) | 2023.12.11 |
| ํ์ด์ฌ ์์ธ์ฒ๋ฆฌ(Exception)์ ๋ชจ๋ ๊ฒ (2) | 2023.12.10 |
๋๊ธ