728x90
Iterables
๊ธฐ๋ณธ ์ค๋ช
- iterable ๋๋ interable container๋ ํ ๋ฒ์ ํ๋์ฉ ๋ฉค๋ฒ๋ฅผ ๋ฐํํ ์ ์๋ ๋ชจ๋ Python ๊ฐ์ฒด
- for ๋ฌธ์์ ๋ฐ๋ณต์ ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋๋ค.
- for ๋ฌธ์์ ํ์ฉ๋ ๋, Python ๋ด๋ถ์ ์ผ๋ก๋ iter() ํจ์๋ฅผ ์ด์ฉํ์ฌ Iterator๋ผ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ์ฌ ์ฌ์ฉํฉ๋๋ค.
- Iterator๋ next() ํจ์๋ฅผ ์ด์ฉํ์ฌ ๋ค์ ๋ฉค๋ฒ๋ฅผ ๋ฐํํ ์ ์์ต๋๋ค.
studentList = ['Tom', 'Jack', 'Jane', 'Susan']
iteratorObject = iter(studentList) # iterator ์์ฑ
print(next(iteratorObject)) # 'Tom'
print(next(iteratorObject)) # 'Jack'
print(next(iteratorObject)) # 'Jane'
print(next(iteratorObject)) # 'Susan'
print(next(iteratorObject)) # 'StopItertation' ์์ธ ๋ฐ์
Iterable ๊ฐ์ฒด์ธ์ง ํ์ธํ๊ธฐ
- List, Dictionary, Set, String, Tuple, Bytes, Range๊ฐ ๋ํ์ ์ธ iterableํ ํ์ ์ ๋๋ค.
- dir() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ __iter__ ๋ฉ์๋๊ฐ ์๋์ง ํ์ธํ๋ฉด ๋ฉ๋๋ค.
stduentList = ['Tom', 'Jack', 'Jane', 'Susan']
dir(studentList)
'''
[ '__add__',
'__class__',
...
'__iter__' # ์กด์ฌ
]
'''
Iterable ํ ํด๋์ค ๋ง๋ค๊ธฐ
- Python Programming์ ํ๋ค ๋ณด๋ฉด, ์ฌ์ฉ์ ์ ์ ํด๋์ค๋ฅผ ๋ฐ๋ณต๋ฌธ์์ ๋ฐ๋ณตํ๊ณ ์ถ์ ๋๊ฐ ์์ต๋๋ค.
- ํด๋น ํด๋์ค์ __iter()__์ __next()__ ๋ฉ์๋๋ฅผ ๊ตฌํํด์ฃผ๋ฉด ๋ฉ๋๋ค.
- for ๋ฌธ์ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด, ํด๋น ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด์ __iter()__ ๋ฉ์๋๋ฅผ ํตํด iterator ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๊ทธ iterator ๊ฐ์ฒด์ __next__() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๋ฃจํ๋ฅผ ๋๊ฒ ๋ฉ๋๋ค.
class MyClass:
def __iter__(self):
...
def __next__(self):
...
728x90
๋ฐ์ํ
'๐ฏ๏ธLanguage > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ํ์ผ ์ ์ถ๋ ฅ (File I/O) + with ๋ฌธ๋ฒ (0) | 2022.06.13 |
---|---|
[Python] Generator, Enumerate, Zip (0) | 2022.06.12 |
[Python] Lambda ์ (0) | 2022.06.12 |
[Python] While / else (0) | 2022.06.12 |
[Python] ํ์ด์ฌ์ ํตํด ๊ตฌํํ DFS์ BFS (0) | 2022.05.14 |