일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- TypeScript
- Android
- algorithm
- S3
- linux
- HTML
- ubuntu
- AWS
- css
- macos
- node.js
- Kotlin
- MongoDB
- wireshark
- postman
- typeorm
- mysql
- Network
- DATABASE
- Scheduling
- docker
- OS
- mongoose
- Crawling
- Express
- python
- sequelize
- Util
- React
- OOAD
- Today
- Total
Seongwon Lim
[Python] enumerate() 함수 사용 방법 본문
서론
이번 글에서는 파이썬의 내장 함수인 enumerate 함수에 대한 개념을 알아보고 예제를 통해 사용 방법을 살펴보고자 한다.
enumerate 함수
해당 함수는 파이썬에서 반복문(for문)을 돌릴 때 인덱스 값을 출력해야 하는 경우에 유용하게 사용할 수 있는 함수이다.
enumerate 함수가 가지는 특징은 다음과 같다.
- 리스트가 있는 경우, 순서(인덱스)와 리스트의 값을 전달하는 기능을 제공한다.
- 해당 함수는 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 반환한다.
- enumerate 함수는 for문에서 자주 사용된다.
예제를 통해 enumerate 함수를 사용하는 방법을 알아보자.
enumerate 함수 사용하지 않고 인덱스 값 출력하기
먼저, enumerate 함수를 사용하지 않고 리스트의 값과 인덱스 값을 출력하려면 어떻게 해야할까?
myList = ['A', 'B', 'C', 'D']
index = 0
for word in myList:
print(index, word)
index += 1
# 결과
0 A
1 B
2 C
3 D
이와 같이 인덱스를 함께 출력할 변수를 선언하여 값을 1씩 증가시키는 방법으로 구현할 수 있을 것이다.
또는 for문의 range() 함수를 이용한다면 다음과 같이 구현할 수 있을 것이다.
myList = ['A', 'B', 'C', 'D']
for i in range(len(myList)):
print(i, myList[i])
# 결과
0 A
1 B
2 C
3 D
이번에는 enumerate 함수를 사용하여 인덱스와 리스트 값을 출력하는 방법을 알아보자.
enumerate 함수 사용하여 인덱스 값 출력하기
myList = ['A', 'B', 'C', 'D']
for data in enumerate(myList):
print(data)
# 결과
(0, 'A')
(1, 'B')
(2, 'C')
(3, 'D')
enumerate 함수는 파이썬 내장 함수로 별도의 라이브러리를 호출하지 않고도 사용할 수 있다.
위와 같이 코드를 구성하면 enumerate 함수는 기본적으로 튜플(Tuple) 타입의 결과를 반환한다.
반환 데이터를 튜플 값이 아닌 인덱스, 리스트 값을 각각 반환하고 싶다면 다음과 같이 코드를 작성하면 된다.
myList = ['A', 'B', 'C', 'D']
for index, word in enumerate(myList):
print(index, word)
# 결과
0 A
1 B
2 C
3 D
시작 인덱스 값 변경하기
지금까지 살펴본 enumerate 함수의 예제는 시작 인덱스가 0부터 시작했다.
그러나 enumerate 함수는 시작 인덱스 값을 사용자의 요구 사항에 맞게 설정할 수 있는 기능을 제공하고 있다.
사용 방법은 enumerate 함수의 두 번째 인자에 start='시작 인덱스 값'을 정의하면 된다. 예제를 통해 살펴보자.
myList = ['A', 'B', 'C', 'D']
for index, word in enumerate(myList, start=50):
print(index, word)
# 결과
50 A
51 B
52 C
53 D
사용자가 정의한 값 50부터 차례대로 출력되는 것을 확인할 수 있다.
enumerate 함수 응용하기
1. enumerate 함수 안에는 sorted 함수와 같은 또 다른 함수를 정의할 수 있다.
myList = ['C', 'B', 'D', 'A']
for index, word in enumerate(sorted(myList)):
print(index, word)
# 결과
0 A
1 B
2 C
3 D
2. 2차원 리스트의 행(row), 열(col) 값을 출력할 때에도 enumerate 함수를 활용할 수 있다.
3x3으로 구성된 2차원 배열이 있을 때의 예제를 살펴보자.
myList = [['A','B','C'], ['D','E','F'], ['G','H','I']]
for r, row in enumerate(myList):
print(r, row)
# 결과
0 ['A', 'B', 'C']
1 ['D', 'E', 'F']
2 ['G', 'H', 'I']
먼저 위 코드처럼 구성하면 행(row)의 인덱스 값과 각 행에 들어있는 배열을 반환한다.
따라서 열(col)의 인덱스 값도 추출하고 싶다면 각 행에 해당하는 배열인 row 변수를 한번 더 enumerate 함수를 적용하면 된다.
myList = [['A','B','C'], ['D','E','F'], ['G','H','I']]
for r, row in enumerate(myList):
for c, col in enumerate(row):
print(r, c, col)
# 결과
0 0 A
0 1 B
0 2 C
1 0 D
1 1 E
1 2 F
2 0 G
2 1 H
2 2 I
'Python' 카테고리의 다른 글
[Python] 다중 조건으로 정렬하는 방법 (0) | 2022.09.13 |
---|---|
[Python] map() 함수를 통해 리스트 데이터 타입 변환하기 (0) | 2022.07.14 |
[Python] 숫자, 문자열 거꾸로 출력하기 (0) | 2022.07.12 |
[Python] 딕셔너리(Dictionary) 정렬하는 법 (0) | 2022.07.09 |
[Python] itertools 라이브러리를 이용한 조합&순열 구하기 (0) | 2022.07.08 |