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

Python – 숫자 문자열을 K자리 정수로 분할하는 방법

숫자로만 이루어진 문자열을 일정한 길이(K자리)의 정수 단위로 잘라내야 하는 경우가 종종 있습니다. 이럴 때는 간단한 반복문(iteration)과 함께 내장 함수인 int(), 그리고 리스트의 append() 메서드를 활용하면 손쉽게 해결할 수 있습니다.

예제 코드

아래는 숫자 문자열을 4자리씩 끊어 정수 리스트로 변환하는 예제입니다.

my_string = '69426874124863145'

print("문자열 : ")
print(my_string)

K = 4
print("K 값 : ")
print(K)

my_result = []
for index in range(0, len(my_string), K):
   my_result.append(int(my_string[index : index + K]))

print("분할 결과 리스트 : ")
print(my_result)

print("정렬 후 결과 리스트 : ")
my_result.sort()
print(my_result)

출력 결과

문자열 :
69426874124863145
K 값 :
4
분할 결과 리스트 :
[6942, 6874, 1248, 6314, 5]
정렬 후 결과 리스트 :
[5, 1248, 6314, 6874, 6942]

코드 설명

  • 숫자 문자열을 정의하고 콘솔에 출력합니다.

  • 분할 단위가 될 K 값을 정의하고 출력합니다.

  • 결과를 담을 빈 리스트를 생성합니다.

  • range(0, len(my_string), K)를 사용해 K칸씩 건너뛰며 인덱스를 순회하고, 슬라이싱([index : index + K])으로 해당 범위의 문자열을 추출한 뒤 int()로 정수형으로 변환합니다.

  • 변환된 값은 append() 메서드로 빈 리스트에 차례대로 추가됩니다.

  • 분할된 결과 리스트를 콘솔에 출력합니다.

  • sort() 메서드로 리스트를 오름차순 정렬하여 다시 출력합니다.

참고 사항

  • 문자열의 길이가 K로 나누어 떨어지지 않으면, 마지막 조각은 남은 자릿수만큼만 추출됩니다. 위 예제에서 마지막 요소가 5인 이유가 바로 이 때문입니다.

  • 같은 작업은 리스트 컴프리헨션을 사용하면 한 줄로도 처리할 수 있습니다.
    my_result = [int(my_string[i : i + K]) for i in range(0, len(my_string), K)]