Programing/파이썬 공부

[Python] 리스트 활용: 간단한 투두리스트 만들기 enumerate()

0erro 2025. 11. 9. 04:14

 

리스트를 활용한 간단한 걸 하나 만들고 싶어서 제미나이한테 뭐가 좋을지 물어봤더니 아래와 같은 걸 만들라고 했다.

더보기

간단한 '할 일 목록' (To-Do List) 프로그램
핵심 목표: 사용자 입력(I), 저장(C/U), 조회(R), 삭제(D)의 CRUD 기본 로직을 익힙니다.

구현 기능:
메뉴 화면: "1. 할 일 추가", 
"2. 할 일 조회", 
"3. 할 일 삭제", 
"4. 종료" 
등을 출력하고 사용자로부터 선택을 받습니다.

데이터 저장: 할 일을 **파이썬 리스트(List)**에 저장하고, 각 할 일에 번호를 부여합니다.

흐름 제어: 사용자가 '4'를 선택하기 전까지 프로그램이 계속 실행되도록 while 무한 루프를 사용합니다.

 


ToDo = []
i = 0

choice = 0

print("----TODOLIST 프로그램----")
print("1. 할 일 추가")
print("2. 할 일 조회")
print("3. 할 일 삭제")
print("4. 종료")
print("-------------------------")

while (choice != "4"):

    choice = (input("번호를 입력하세요. "))

    # 할 일 추가
    if (choice == "1"):
        todolist = ""
        print("할 일을 입력하세요")
        print("종료는 exit")
        while (todolist != "exit"):
            todolist = input()
            if (todolist != "exit"):
                ToDo.append(todolist)
    
    # 할 일 조회
    elif (choice == "2"):
        for idx, val in enumerate(ToDo, start = 1):
            print(idx, val)

    #할 일 삭제
    elif (choice == "3"):
        for idx, val in enumerate(ToDo, start = 1 ):
            print(idx, val)

        number = int(input("삭제할 번호를 입력하세요. "))
        number = number-1
        del(ToDo[number])
        print("삭제 제되었습니다.")
    
    #종료
    elif (choice == "4"):
        print("TODOLIST가 종료됩니다.")

    #잘못 입력
    else:
        print("잘못 입력하셨습니다. 다시 입력해주세요.")

 

내가 짠 코드이다. 간단하게 빠르게 짤 수 있었고 배운 리스트를 활용할 수 있었다. 하지만 받은 할 일 목록을 조회할 때 번호를 부여해서 보여주고 싶었는데 리스트를 인덱스 번호와 함께 출력하는 법을 몰랐다. 찾아보니 enumerate() 를 사용하면 각 요소를 (인덱스, 값) 형태로 출력할 수 있다고 했다.

 

fruits = ["apple", "banana", "cherry"]

for idx, val in enumerate(fruits):
    print(idx, val)

>> 0 apple
     1 banana
     2 cherry 

 

인덱스 번호를 1부터 시작하고 싶다면 start 옵션을 쓰면 된다.

for idx, val in enumerate(fruits, start=1):
    print(idx, val)

>> 1 apple
     2 banana
     3 cherry

 

여기서 idx 와 val은 변수 이름으로 enmerate(fruits)가 반환하는 (인덱스, 값) 쌍을 받아서 각각에 할당하는 역할을 한다.

enmerate() 는 반복할 때마다 아래와 같은 형태의 튜플을 생성한다.

(0, "apple")
(1, "banana")
(2, "cherry")

즉, 인덱스 번호와 리스트의 실제 값이 들어있는 튜플이다.

 

 

enumerate() 는 내가 공부하는 책에는 없던 함수이다. 내가 배운 리스트로 투두리스트를 만들고 조금 더 보기 편하게 하고 싶어 찾아보다가 또 이렇게 하나의 함수를 더 알게 됐다!

 

'Programing > 파이썬 공부' 카테고리의 다른 글

[Python] 리스트, 튜플, 딕셔너리 정리  (0) 2025.11.09
[Python] 리스트 활용  (0) 2025.11.08
[Python] 리스트 정리  (0) 2025.10.10