๋ฐ์ํ
๐กenumerate()
enumerate()ํจ์๋ ๋ฆฌ์คํธ์ ๊ฐ์ ์ถ์ถํ ๋ '์ธ๋ฑ์ค๋ฅผ ๋ถ์ฌ' ํจ๊ป ์ถ๋ ฅํ๋ ํจ์์ด๋ค.
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>>list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>>list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
enumerate()ํจ์์ start ํ๋ผ๋ฏธํฐ๋ก ์ธ๋ฑ์ค์ ์์์ ๋ ์ง์ ํ ์ ์๋ค.
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
๐กzip()
zip() ํจ์๋ 1๊ฐ ์ด์์ ๋ฆฌ์คํธ๊ฐ์ด ๊ฐ์ ์ธ๋ฑ์ค์ ์์ ๋ ๋ณ๋ ฌ๋ก ๋ฌถ๋ ํจ์์ด๋ค.
>>> lst_a = ['a1', 'a2', 'a3']
>>> lst_b = ['b1', 'b2', 'b3']
>>> for a, b in zip(lst_a, lst_b):
... print(a, b)
...
a1 b1
a2 b2
a3 b3
>>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):
... print(item)
...
(1, 'sugar')
(2, 'spice')
(3, 'everything nice')
zipํจ์๋ matrix๋ฅผ ์ ์นํ๋ ๊ฒ๊ณผ ๋น์ทํ๋ค.
>>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))
[(0, 'fee'), (1, 'fi'), (2, 'fo')]
>>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum'], strict=True))
Traceback (most recent call last):
...
ValueError: zip() argument 2 is longer than argument 1
zip() ํจ์๋ ๊ฐ์ ์ธ๋ฑ์ค์ ์์ ๋ ๋ฌถ์ด์ฃผ๊ธฐ ๋๋ฌธ์, ๋ ๊ฐ์ list์ length๊ฐ ๊ฐ์์ผํ๋๋ฐ, ๋ง์ฝ ๋ ๋ฆฌ์คํธ์ length๊ฐ ๋ค๋ฅด๋ฉด ๊ฐ์ ๊ณณ ๊น์ง๋ง ๋ฌถ์ด์ค๋ค.
ํ์ง๋ง, strict ํ๋ผ๋ฏธํฐ๋ฅผ true๋ก ์ง์ ํ๋ฉด ๋ ๋ฆฌ์คํธ์ length๊ฐ ๋ค๋ฅด๋ฉด error๊ฐ ๋ฐ์ํ๋ค.
๋ฐ์ํ
๋๊ธ