Python Basic 4 | enumerate()

devheyrin·2022년 1월 3일
0

python basic

목록 보기
4/19

for 루프 인덱스, 요소에 접근하려면?

두 가지 방법이 있을 수 있다.

  1. 인덱스용 변수를 따로 선언하기
  2. range(len()) 함수 사용하기

첫 번째 방법

i = 0
for letter in ['a', 'b', 'c']:
		print(i, letter)
		i += 1 

인덱스를 출력할 수는 있지만, 반복문 종료 이후에도 i 변수가 네임스페이스에서 사라지지 않기 때문에 적절하지 않다.

두 번째 방법

letters = ['a', 'b', 'c']
for i in range(len(letters)):
		print(i, letter[i]) 

내가 가장 많이 사용하는 방법이다. 그러나 파이썬 커뮤니티에서는 이 방법이 파이썬답지 않아 보인다고 한다.

파이썬답게(Pythonic) for루프 인덱스, 원소에 접근하기

파이썬답게 인덱스와 원소에 동시에 접근할 수 있는 방법은 무엇일까?

enumerate() 를 이용하면 된다. list등 for 문의 in 뒤에 오는 객체를 enumerate() 함수로 감싸 주면 된다.

for entry in enumerate(['a', 'b', 'b']):
		print(entry)

# 출력 결과 - (인덱스, 원소) 형태의 튜플을 반환한다. 
(0, 'A')
(1, 'B')
(2, 'C')

for i, letter in enumerate(['A', 'B', 'C']):
		print(i, letter)

# 출력 결과 - 변수 두 개에 각각 인덱스와 원소를 할당한다. 
0 A
1 B
2 C

enumerate() 시작 인덱스 바꾸기

for i, letter in enumerate(['A', 'B', 'C'], start=1):
		print(i, letter) 

# 인덱스가 1부터 출력된다. 
profile
개발자 헤이린 🔜 프로덕트 매니저로 나아가는 중!

0개의 댓글