728x90
iterable
- ๋ฐ๋ณต ๊ฐ๋ฅํ ํ์ ์ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค.
- List, Tuple, Dictionary, Set, String, Bytes, Range ๋ฑ์ ์ํ๊ฐ ๊ฐ๋ฅํ๋ค.
- Iterable ๊ฐ์ฒด๋ฅผ ํ๋ณํ๊ธฐ ์ํด์ , collections.Iterable์ ์ํ ๊ฐ์ฒด(Instance)์ธ์ง ํ์ธํ๋ฉด ๋๋ค.
- isinstance() ํจ์๋ฅผ ํตํด ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
import collections
list = [1, 3, 5, 7, 9]
print(isinstance(list, collections.Iterable)) # True
A = 300 # int
print(isinstace(A, collections.Iterable)) # False
iterableํ ํ์ ์ ๋จ์ํ for ๋ฌธ์ผ๋ก๋ ์ํ๊ฐ ๊ฐ๋ฅํ๋ค.
list = [1, 3, 5, 7, 9]
for i in list:
print(i) # 1 3 5 7 9
iter(), next()
- iter() ํจ์๋ ๊ฐ์ฒด์ iterator๋ฅผ ๋ฆฌํดํด์ค๋ค.
- iter() ํจ์๋ ๋ฐ๋ณต์ ๋๋ผ ๊ฐ(sentinel)์ ์ง์ ํ ์ ์๋ค.
- next() ํจ์๋ iterator์์ ๊ฐ์ ์ฐจ๋ก๋๋ก ๊ฐ์ ธ์จ๋ค.
- ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํด๋์ง ์์ผ๋ฉด, iterator์ ๊ฐ์ ๋ค ๊ฐ์ ธ์จ ํ์ ํธ์ถ ์ "StopIteration"์ ๋ฐ์์ํจ๋ค.
list = [1, 2, 3]
it = iter(list)
for i in range(len(list) + 1): # ๋ง์ง๋ง ๋ฐ๋ณต๋ฌธ์์ StopIteration ๋ฐ์
print(next(it))
iter() ํจ์์ ํธ์ถ ๊ฐ๋ฅํ ๊ฐ์ฒด(callable)์ ๋ฐ๋ณต์ ๋๋ผ ๊ฐ(sentinel)์ ๋ฃ์ด์ ๋ณ๋ค๋ฅธ ์กฐ๊ฑด๋ฌธ(if)์์ด ๋ฐ๋ณต์ ์ค์งํ ์ ์๋ค.
import random
for i in iter(lambda : random.randint(0, 10), 5): # ์ซ์ 5๊ฐ ๋์ฌ ์ ์ค์ง
print(i, end = ' ')
next() ํจ์์ ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํด๋์ผ๋ฉด, ๋ฐ๋ณต์ด ๋๋๋๋ผ๋ StopIteration์ด ๋ฐ์ํ์ง ์๊ณ ๊ธฐ๋ณธ๊ฐ์ ๋ฆฌํดํ๋ค.
list = [1, 2, 3]
it = iter(list)
for i in range(len(list) + 1):
print(next(it, 100))
enumerate
- ๋ช ๋ฒ์งธ ๋ฐ๋ณต๋ฌธ์ธ์ง ํ์ธํ ๋ ์ฌ์ฉ
- ํํ(Tuple) ํํ๋ก (์ธ๋ฑ์ค ๋ฒํธ, ์์)๋ฅผ ๋ฆฌํดํ๋ค.
Months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', \
'August', 'September', 'October', ' November', 'December']
i = 0
for item in enumerate(Months):
print("{0}".format(item), end = ' ')
i += 1
if i % 4 == 0:
print()
print()
enumerate( ... , 1)์ฒ๋ผ ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์ง์ ํ ์ ์๋ค.
for item in enumerate(Months, 1): # ์์ ์ธ๋ฑ์ค ๋ฒํธ๊ฐ 1๋ถํฐ ์์
...
ํํ(Tuple)์ ๋ฆฌํดํ๋ค๋ ํน์ฑ์ ์ด์ฉํ์ฌ, ๋ค์๊ณผ ๊ฐ์ด ํ์ฉํ ์๋ ์๋ค.
for index, value in enumerate(Months):
print("index : {}, value : {}".format(index, value))
์ฐธ๊ณ
728x90
๋ฐ์ํ
'๐ฏ๏ธLanguage > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ord()์ chr() ํจ์ (0) | 2022.04.10 |
---|---|
[Python] ๋ฌธ์์ด ์ถ๋ ฅ ๋ฐฉ์ (0) | 2022.03.17 |
[Python] ํ ๋ฒ์ ์ฌ๋ฌ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ ๋ฐ๋ ๋ฐฉ๋ฒ (0) | 2022.02.03 |
[Python] all()๊ณผ any() (0) | 2022.02.03 |
[Python] ๋ฆฌ์คํธ(list) ์ฐ์ฐ - insert(), pop(), remove(), reverse(), sort(), index(), count() (0) | 2022.02.03 |