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

파이썬 – 리스트의 숫자 요소를 K자리 단위로 재구성하는 방법

리스트에 담긴 여러 개의 정수를 하나의 연속된 숫자열로 이어 붙인 뒤, K자리씩 끊어서 새로운 요소로 재구성해야 하는 경우가 있습니다. 파이썬에서는 리스트 컴프리헨션(list comprehension)과 append 메서드를 활용하면 아주 간단하게 처리할 수 있습니다.

예제 코드

아래는 실제 구현 예시입니다.

my_list = [231, 67, 232, 1, 238, 31, 793]

print("The list is :")
print(my_list)

K = 3
print("The value of K is ")
print(K)

temp = ''.join([str(ele) for ele in my_list])

my_result = []

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

print("The resultant list is :")
print(my_result)

실행 결과

The list is :
[231, 67, 232, 1, 238, 31, 793]
The value of K is
3
The resultant list is :
[231, 672, 321, 238, 317, 93]

코드 설명

  • 정수 요소를 가진 리스트를 정의하고 콘솔에 출력합니다.

  • K 값을 초기화한 뒤 화면에 표시합니다. 예제에서는 K = 3이므로 세 자리씩 끊게 됩니다.

  • 리스트 컴프리헨션으로 리스트의 모든 요소를 순회하며 문자열(str) 타입으로 변환하고, join() 메서드로 구분자 없이 하나의 문자열로 이어 붙입니다. 그 결과 "23167232123831793"이라는 하나의 긴 문자열이 만들어집니다.

  • 이렇게 만들어진 문자열은 변수 temp에 저장됩니다.

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

  • range(0, len(temp), K)를 사용해 인덱스를 K 간격으로 순회하면서, temp[index: index + K] 슬라이싱으로 문자열을 K자리씩 잘라낸 후 int()로 다시 정수형으로 변환하여 결과 리스트에 추가(append)합니다.

  • 문자열의 길이가 K의 배수가 아니라면, 마지막 조각은 남은 자릿수만큼만 잘려 들어갑니다. 위 예제에서는 마지막에 두 자리 숫자인 93이 그대로 포함되었습니다.

  • 최종 결과 리스트가 콘솔에 출력되며 프로그램이 종료됩니다.

동작 과정 한눈에 보기

위 예제의 흐름을 단계별로 정리하면 다음과 같습니다.

  1. 원본 리스트: [231, 67, 232, 1, 238, 31, 793]
  2. 모든 요소를 이어 붙인 문자열: "23167232123831793"
  3. 3자리씩 분할: [231, 672, 321, 238, 317, 93]