객체 지향 프로그래밍/Python

enumerate함수(feat. 문자열비교)

ghtis1798 2021. 3. 18. 02:03

📌enumerate란?

enumerate함수는 enumerate 객체를 생성해주는 함수다.

그럼 enumerate 객체는 무엇일까?

enumerate 객체는 순서 번호가 들어간 iterator 객체이다.

만약 반 학생들을 이름순으로 정렬한 뒤 각각 번호를 매긴다면 어떻게 해야할까?

이름순 정렬은 sort()나 sorted() 함수로 해결 가능할 것이다.

그런데 번호는 i=1부터 선언해서 각각 추가해 주어야 한다.

이를 간단하게 처리해주기 위한 함수가 enumerate 함수이다.

student = ['Jihyeon', 'Andy', 'Chris', 'Songhye', 'Danny']
student.sort()
enum_student = enumerate(student)
for x in enum_student:
    print(x)
# (0, 'Andy')
# (1, 'Chris')
# (2, 'Danny')
# (3, 'Jihyeon')
# (4, 'Songhye')

그런데 번호가 0번부터 있다.

10번부터 저장하려면 다음과 같다.

student = ['Jihyeon', 'Andy', 'Chris', 'Songhye', 'Danny']
student.sort()
enum_student = enumerate(student, 10)
for x in enum_student:
    print(x)
# (10, 'Andy')
# (11, 'Chris')
# (12, 'Danny')
# (13, 'Jihyeon')
# (14, 'Songhye')

enumerate 객체를 for문에 넣어서 코드를 줄일 수도 있다.

student = ['Jihyeon', 'Andy', 'Chris', 'Songhye', 'Danny']
student.sort()
for x in enumerate(student, 10):
    print(x)
# (10, 'Andy')
# (11, 'Chris')
# (12, 'Danny')
# (13, 'Jihyeon')
# (14, 'Songhye')

📌문자열 비교

참고로 문자열 비교는 사전순으로 이루어진다.

알파벳의 경우 대문자, 그 뒤 소문자 순으로 정렬되어 있다.

한글도 마찬가지로 사전 순서로 정렬이 이루어진다.

 

 

참고서적 - 열혈 파이썬 중급편 윤성우 저