๐Ÿ“œ Language/[python]

[ํŒŒ์ด์ฌ] ๋ฐ˜๋ณต๋ฌธ์—์„œ ์ธ๋ฑ์Šค์™€ ์š”์†Œ ๋™์‹œ ์ˆœํšŒ - enumerate

์ œ๋ด‰์•„ 2023. 8. 29. 01:55

enumerate?

ํŒŒ์ด์ฌ์—์„œ for๋ฌธ์œผ๋กœ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์€ ๊ฐ์ฒด ์ˆœํšŒํ•  ๋•Œ, enumerate๋กœ ์š”์†Œ์˜ ์ˆœ์„œ(์ธ๋ฑ์Šค)์™€ ์š”์†Œ๋ฅผ ๋™์‹œ์— ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. 

๋ฆฌ์ŠคํŠธ ๋ง๊ณ  ํŠœํ”Œ, ๋”•์…”๋„ˆ๋ฆฌ์—๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ฐ˜๋ณต๋ฌธ(for ๋ฌธ)

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์ž.

Arr = ['Vaundy', 'Kaze', 'Ayase']

 

ํŒŒ์ด์ฌ์—์„œ for๋ฌธ์œผ๋กœ ์ˆœํšŒํ•  ๋•Œ ๋ณดํ†ต ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ๋‹ค.

for value in Arr:
    print(value)
    
Vaundy
Kaze
Ayase

 

๋˜ ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค๋ฅผ ์ˆœํšŒํ•  ๋•Œ๋Š” ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

for i in range(len(Arr)):
    print(i)
    
0
1
2

 

๊ทธ๋Ÿผ ์š”์†Œ์™€ ์ธ๋ฑ์Šค๋ฅผ ๋™์‹œ์— ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ๋ณดํ†ต ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋Œ€๋ถ€๋ถ„(+๋‚˜) ์ž‘์„ฑํ•  ๊ฒƒ์ด๋‹ค.

for i in range(len(Arr)):
    print(i, Arr[i])

0 Vaundy
1 Kaze
2 Ayase

๊ทผ๋ฐ ์ด๋Ÿฐ ๋ฐฉ๋ฒ•์€ 'ํŒŒ์ดํ† ๋‹‰(Pythonic)'ํ•˜์ง€ ์•Š๋‹ค๊ณ  ํ•œ๋‹ค(๊ธ€ ์“ฐ๋ฉด์„œ ์ฒ˜์Œ ์•Ž).

์ข€ ๋” ๊น”๋”ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด enumerate() ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•ด์„œ ์ธ๋ฑ์Šค์™€ ์š”์†Œ๋ฅผ ๋™์‹œ์— ์ ‘๊ทผํ•ด ๋ณด์ž.

 

enumerate() ์‚ฌ์šฉ

์œ„์—์„œ ์‚ฌ์šฉํ•œ Arr ๋ฆฌ์ŠคํŠธ๋ฅผ enumerateํ•จ์ˆ˜๋กœ ์ˆœํšŒํ•ด ๋ณด์ž.

for value in enumerate(Arr):
    print(value)

(0, 'Vaundy')
(1, 'Kaze')
(2, 'Ayase')

์œ„์™€ ๊ฐ™์ด tuple์˜ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ๋ฑ์Šค์™€ ์š”์†Œ๋ฅผ ๋”ฐ๋กœ ์ ‘๊ทผํ•˜๋ ค๋ฉด unpacking์„ ํ•ด์ฃผ์ž.

 

for i, value in enumerate(Arr):
    print(i, value)
    
0 Vaundy
1 Kaze
2 Ayase

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊น”๋”ํ•˜๊ฒŒ ๋ฐ˜๋ณต๋ฌธ์—์„œ ์ธ๋ฑ์Šค์™€ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

enumerate() ํ™œ์šฉ

์‹œ์ž‘ํ•˜๋Š” index ๊ฐ’ ๋ณ€๊ฒฝ

๋‹ค์Œ๊ณผ ๊ฐ™์ด enumerate() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ๋’ค์— ์ธ์ž์— ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์€ index๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

for i, value in enumerate(Arr, 1):
    print(i, value)

1 Vaundy
2 Kaze
3 Ayase

 

๋ฌธ์ž์—ด ์ˆœํšŒ

my_word = "Miphas Theme"

for i, value in enumerate(my_word, 1):
    print(i, value)
    
1 M
2 i
3 p
4 h
5 a
6 s
7  
8 T
9 h
10 e
11 m
12 e

 

2์ฐจ์› ๋ฆฌ์ŠคํŠธ ์ˆœํšŒ

๋ณดํ†ต 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ํ–‰๊ณผ ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ๋‹ค.

Box = [['A', 'B', 'C', 'D'], ['E', 'F'], ['G', 'H', 'I']]

for i in range(len(Box)):
    for j in range(len(Box[i])):
        print(i, j, Box[i][j])

0 0 A
0 1 B
0 2 C
0 3 D
1 0 E
1 1 F
2 0 G
2 1 H
2 2 I

 

์ด์ œ enumerate() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์ž.

for i, row in enumerate(Box):
    for j, value in enumerate(row):
        print(i, j, value)

0 0 A
0 1 B
0 2 C
0 3 D
1 0 E
1 1 F
2 0 G
2 1 H
2 2 I

๋งค์šฐ ํŒŒ์ดํ† ๋‹‰ํ•˜๋‹ค.

 

๊ฒฐ๋ก 

ํŒŒ์ด์ฌ์—์„œ for๋ฌธ์œผ๋กœ ์ˆœํšŒํ•  ๋•Œ enumerate() ํ•จ์ˆ˜๋ฅผ ์ž˜ ํ™œ์šฉํ•ด์„œ ํŒŒ์ดํ† ๋‹‰ํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์จ๋ณด์ž.

 


์ฐธ๊ณ 

https://www.daleseo.com/python-enumerate/