파이썬 map 함수로 숫자로 나열된 문자열을 리스트로 만들기

파이썬에서 map 함수를 활용한 숫자 리스트 변환 방법

파이썬을 처음 배우는 입문자들에게 숫자들을 쉽게 리스트로 변환하는 방법을 설명합니다. 흔히 숫자들을 나열한 긴 문자열을 리스트로 변환하는 작업은 데이터 처리에서 필수적입니다. 여기서 사용할 수 있는 유용한 도구로는 map 함수, input 함수, 그리고 split 함수가 있습니다. 이 글에서는 이러한 함수들을 사용해 어떻게 숫자들을 효과적으로 처리할 수 있는지 단계별로 알아보겠습니다.

map 함수의 개념과 사용 방법

map 함수는 파이썬에서 제공하는 내장 함수로, 주어진 함수와 반복 가능한 자료형(이터러블)을 인수로 받아, 해당 함수를 이터러블의 모든 요소에 적용시켜 그 결과를 반환합니다. 이 과정에서 새로운 이터러블 객체를 생성합니다. map 함수는 특히 데이터 변환 및 처리에서 유용하며, 반복문을 사용하는 것보다 더 간결하고, 종종 더 효율적인 코드 작성을 가능하게 합니다.

예를 들어, 여러 개의 숫자를 입력받아 리스트로 변환하는 작업은 데이터 분석이나 데이터 전처리 단계에서 매우 중요합니다. 이때, map 함수를 통해 각 요소를 원하는 형식으로 변환할 수 있습니다. 또한, 이 함수는 데이터가 커질수록 반복문 대신 사용하기 적합합니다.

입문 코드 예제 ① — 가장 단순한 형태

먼저, 문자열로 입력된 숫자들을 리스트로 변환하는 가장 기본적인 방법을 살펴보겠습니다.

user_input = "14 45 50 3 7 11 5 23 9 80"
number_list = list(map(int, user_input.split()))
print(number_list)

위 코드는 사용자가 입력한 문자열을 split 함수로 공백 단위로 나누고, map 함수를 사용해 각 요소를 정수(int)로 변환한 뒤 리스트로 만듭니다. 결과적으로 number_list에는 각 숫자가 정수로 변환된 리스트가 저장됩니다.

이 예제는 map 함수를 사용하지 않고 반복문을 사용할 경우보다 짧고 명확한 코드 작성을 가능하게 합니다.

입문 코드 예제 ② — 조건/반복 추가

이제, 쉼표로 구분된 숫자 문자열을 리스트로 변환하는 방법을 살펴보겠습니다.

user_input = "14,45,50,3,7,11,5,23,9,80"
number_list = list(map(int, user_input.split(',')))
print(number_list)

이번 코드에서는 split(',')를 사용하여 쉼표로 구분된 숫자들을 분리했습니다. 각 요소는 앞선 예제와 마찬가지로 map 함수를 통해 정수로 변환됩니다. 쉼표를 사용하여 구분된 데이터를 처리할 수 있는 좋은 예제가 됩니다.

이 과정에서 생길 수 있는 오류를 방지하기 위해, 입력이 올바른지 확인해야 합니다. 예를 들어, 유효한 숫자 외의 문자가 들어가지 않도록 주의해야 합니다.

입문 코드 예제 ③ — 실용적 응용

이제 조금 더 복잡한 예제로, 사용자로부터 직접 입력을 받아 리스트로 변환하는 프로그램을 작성해보겠습니다.

user_input = input("숫자를 입력하세요 (쉼표로 구분): ")
try:
number_list = list(map(int, user_input.split(',')))
print("변환된 숫자 리스트:", number_list)
except ValueError:
print("유효한 숫자를 입력하세요.")

위 프로그램에서는 input 함수를 사용하여 사용자가 입력한 데이터를 받아, try-except 블록을 통해 입력된 데이터가 올바르게 숫자로 변환되는지 확인합니다. 이처럼 사용자 입력은 언제나 예외 처리가 필요합니다. 잘못된 입력을 감지하여 적절한 메시지를 출력함으로써 사용자가 올바른 데이터를 입력하도록 안내합니다.

입문자가 자주 하는 실수와 해결법

다음은 입문자가 자주 하는 실수와 그 해결책을 제시합니다.

# 잘못된 예제
user_input = "14 45 50,3,7 11 5 23 9 80"
number_list = list(map(int, user_input.split(','))) # 쉼표로만 구분하면 오류 발생

# 올바른 예제
user_input = "14,45,50,3,7,11,5,23,9,80"
number_list = list(map(int, user_input.split(',')))

첫 번째 잘못된 예제에서는 공백과 쉼표가 혼재된 입력을 쉼표만으로 구분하려다 보니 오류가 발생할 수 있습니다. 따라서 입력 형식을 일관되게 유지해야 하며, 입력 데이터가 혼합된 경우에는 추가적인 처리 로직이 필요합니다.

한 단계 위 코드 예제 ① — 함수 도입

이제 함수를 도입하여 코드의 재사용성을 높이고 유지보수를 용이하게 하는 방법을 알아보겠습니다.

def convert_to_list(input_string):
try:
return list(map(int, input_string.split(',')))
except ValueError:
print("유효한 숫자를 입력하세요.")
return []

user_input = input("숫자를 입력하세요 (쉼표로 구분): ")
number_list = convert_to_list(user_input)
print("변환된 숫자 리스트:", number_list)

함수 convert_to_list는 문자열을 받아 리스트로 변환하는 작업을 캡슐화합니다. 이는 코드의 가독성을 높이고, 동일한 기능을 여러 번 사용할 수 있도록 해줍니다. 또한, 예외 처리를 함수 내부에 포함시켜, 함수 호출부에서는 코드의 간결성을 유지할 수 있습니다.

요약

이번 글에서는 파이썬의 map 함수와 split 함수를 사용하여 숫자 문자열을 리스트로 변환하는 방법을 살펴보았습니다. 간단한 문자열 변환에서부터 함수 도입을 통한 코드 개선까지 다양한 방법을 소개했습니다. 이 과정에서 자주 발생하는 오류를 예방할 수 있는 방법도 함께 설명하였습니다.

#파이썬입문 #map함수 #리스트변환 #입력처리 #코딩기초 #프로그래밍 #데이터처리 #파이썬리스트 #함수사용 #코딩실수방지