이 글에서는 사용자에게 리스트의 요소를 직접 입력받고, 입력된 값들을 모아 최종적으로 하나의 리스트를 완성하는 방법을 알아봅니다. 상황에 따라 활용할 수 있는 세 가지 접근 방식을 예제 코드와 실행 결과와 함께 살펴보겠습니다.
format과 input 함수 활용하기
format 함수는 문자열의 자리 표시자(placeholder)에 원하는 값을 채워 넣는 역할을 하고, input 함수는 사용자가 입력한 값을 받아옵니다. 이 두 함수를 조합하면 몇 번째 요소를 입력하고 있는지 안내 메시지를 보여줄 수 있으며, 입력받은 값은 append() 메서드로 리스트에 하나씩 추가합니다.
예제 코드
listA = []
# 입력받을 요소의 개수
n = int(input("Enter number of elements in the list : "))
# 지정한 개수만큼 반복
for i in range(0, n):
print("Enter element No-{}: ".format(i+1))
elm = int(input())
listA.append(elm) # 요소를 리스트에 추가
print("The entered list is: \n",listA)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Enter number of elements in the list : 4 Enter element No-1: 7 Enter element No-2: 45 Enter element No-3: 1 Enter element No-4: 74 The entered list is: [7, 45, 1, 74]
map 함수로 한 번에 입력받기
또 다른 방법은 사용자에게 여러 값을 한 줄에 쉼표(,)로 구분해 입력하도록 요청하는 것입니다. 이렇게 하면 요소 하나하나를 반복해서 입력할 필요가 없어 편리합니다. strip()으로 불필요한 공백을 제거하고 split(',')으로 값을 나눈 뒤, map 함수를 이용해 각 값을 정수(int)로 변환하여 리스트로 만듭니다.
예제 코드
listA = []
# 입력받을 요소의 개수
n = int(input("Enter number of elements in the list : "))
# 쉼표로 구분된 값들을 한 번에 입력받기
listA = list(map(int,input("Enter the numbers : ").strip().split(',')))[:n]
print("The entered list is: \n",listA)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Enter number of elements in the list : 4 Enter the numbers : 12,45,65,32 The entered list is: [12, 45, 65, 32]
리스트 안에 리스트 입력하기 (중첩 리스트)
input 함수를 한 요소당 두 번 호출하면 리스트 안에 리스트가 들어 있는 중첩 리스트(nested list) 구조도 만들 수 있습니다. range 함수로 입력할 요소의 개수를 관리하고, format 함수로 몇 번째 요소인지 안내합니다. 각 하위 리스트에는 문자열과 숫자를 함께 담을 수 있으며, 완성된 하위 리스트를 상위 리스트에 append()로 추가합니다.
예제 코드
listA = []
# 입력받을 요소의 개수
n = int(input("Enter number of elements in the list : "))
# 각 하위 리스트는 두 개의 요소를 가짐
for i in range(0, n):
print("Enter element No-{}: ".format(i + 1))
ele = [input(), int(input())]
listA.append(ele)
print("The entered list is: \n",listA)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Enter number of elements in the list : 2 Enter element No-1: 'Mon' 3 Enter element No-2: 'Tue' 4 The entered list is: [["'Mon'", 3], ["'Tue'", 4]]
마무리
정리하면, 요소를 하나씩 차례대로 입력받을 때는 format + input + append 조합이 적합하고, 여러 값을 빠르게 입력받고 싶을 때는 쉼표 구분 입력 + map 방식이 효율적입니다. 또한 input 함수를 응용하면 문자열과 숫자가 섞인 중첩 리스트도 손쉽게 만들 수 있습니다. 상황에 맞는 방법을 선택해 사용자 입력 기반의 리스트를 유연하게 구성해 보세요.