Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 문자열 리스트를 정수 리스트로 변환하는 방법

프로그래밍을 하다 보면 리스트 안에 숫자 형태의 문자열이 들어 있는 경우가 종종 있습니다. 예를 들어 ['5', '2', '-43', '23']처럼 값 자체는 숫자이지만 따옴표로 묶여 있어 문자열로 취급되는 상황입니다. 이런 경우 연산이나 비교를 위해서는 문자열 요소들을 실제 정수(int) 타입으로 변환해야 합니다.

방법 1: int() 함수와 리스트 컴프리헨션 사용

파이썬의 int() 함수는 숫자 형태의 값을 받아 정수로 변환해 줍니다. 리스트의 각 요소에 이 함수를 적용하려면 for 반복문을 활용할 수 있는데, 가장 파이썬다운 방식은 리스트 컴프리헨션(list comprehension)을 사용하는 것입니다. 각 요소를 하나씩 순회하며 int()로 변환한 뒤, 그 결과를 새로운 리스트에 저장합니다.

예제 코드

listA = ['5', '2', '-43', '23']
# 주어진 문자열 리스트
print("주어진 문자열 리스트 : \n", listA)
# int()를 이용한 변환
res = [int(i) for i in listA]
# 결과 출력
print("정수로 변환된 리스트 : \n", res)

실행 결과

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

주어진 문자열 리스트 :
['5', '2', '-43', '23']
정수로 변환된 리스트 :
[5, 2, -43, 23]

방법 2: map()과 list() 함수 사용

또 다른 방법은 map() 함수를 활용하는 것입니다. map()은 지정한 함수를 리스트의 모든 요소에 일괄적으로 적용해 주므로, int 함수를 전달하면 문자열 요소들이 한 번에 정수로 변환됩니다. map 객체는 바로 출력할 수 없기 때문에 list()로 감싸서 결과를 리스트 형태로 만들어 주어야 합니다. 이 방법은 코드가 더 간결하고 대용량 데이터에서도 효율적으로 동작한다는 장점이 있습니다.

예제 코드

listA = ['5', '2', '-43', '23']
# 주어진 문자열 리스트
print("주어진 문자열 리스트 : \n", listA)
# map과 int를 이용한 변환
res = list(map(int, listA))
# 결과 출력
print("정수로 변환된 리스트 : \n", res)

실행 결과

위 코드 역시 동일한 결과를 출력합니다.

주어진 문자열 리스트 :
['5', '2', '-43', '23']
정수로 변환된 리스트 :
[5, 2, -43, 23]

마무리

두 방법 모두 문자열 리스트를 정수 리스트로 손쉽게 변환할 수 있습니다. 리스트 컴프리헨션은 조건 추가 등 확장성이 좋고, map() 방식은 코드가 짧아 가독성이 뛰어납니다. 상황에 맞게 선택하여 사용하시면 됩니다. 단, 변환하려는 문자열이 실제 숫자 형식이어야 하며, 그렇지 않으면 ValueError가 발생할 수 있다는 점에 유의하세요.