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

파이썬(Python)으로 숫자를 반으로 나눠 동일 자릿수 튜플 만들기


리스트에 있는 숫자들을 앞뒤 절반으로 나누어 동일 자릿수(equi-digit) 튜플을 구성해야 하는 경우, 정수 나눗셈 연산자인 //와 리스트(문자열) 슬라이싱을 활용하면 간단하게 해결할 수 있습니다.

예제 코드

아래 예제는 주어진 리스트의 각 숫자를 중간 인덱스를 기준으로 두 부분으로 분리하여 튜플로 변환하는 과정을 보여줍니다.

my_list = [5613, 1223, 966143, 890, 65, 10221]

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

my_result = []
for sub in my_list:

   mid_index = len(str(sub)) // 2
   element_1 = str(sub)[:mid_index]
   element_2 = str(sub)[mid_index:]

   my_result.append((int(element_1), int(element_2)))

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

실행 결과

The list is :
[5613, 1223, 966143, 890, 65, 10221]
The resultant list is :
[(56, 13), (12, 23), (966, 143), (8, 90), (6, 5), (10, 221)]

코드 설명

  • 숫자들이 담긴 리스트를 정의하고 콘솔에 출력합니다.

  • 결과를 저장할 빈 리스트를 하나 준비합니다.

  • 리스트를 반복(iteration)하면서 각 숫자를 문자열로 변환한 뒤, 전체 길이에 // 연산자를 적용해 중간 인덱스를 계산합니다.

  • 슬라이싱을 이용해 중간 인덱스를 기준으로 앞부분과 뒷부분의 값을 각각 추출합니다.

  • 추출된 두 값은 별도의 변수에 저장됩니다.

  • 두 값을 다시 정수(int)로 변환한 후, 튜플 형태로 결과 리스트에 추가(append)합니다.

  • 모든 처리가 끝나면 최종 결과 리스트를 콘솔에 출력합니다.

자릿수가 홀수인 경우의 동작

// 연산자는 소수점 이하를 버리는 정수 나눗셈이므로, 자릿수가 홀수인 숫자도 문제없이 처리됩니다. 예를 들어 890은 세 자리 숫자이므로 중간 인덱스가 3 // 2 = 1이 되어 (8, 90)처럼 앞부분은 한 자리, 뒷부분은 두 자리로 나뉩니다. 이처럼 중간 인덱스 계산 방식 덕분에 어떤 길이의 숫자든 안정적으로 분할할 수 있습니다.